awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
⊢ ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)

Tactic:
have C : ∀ᶠ n in atTop, (Set.pi univ fun i : ι => Ioo (a i : ℝ) (b i)) ⊆ ⋃ i : γ n, t n i := by
    refine eventually_atTop.2 ⟨1, fun n hn => ?_⟩
    have npos : (0 : ℝ) < n := Nat.cast_pos.2 hn
    intro x hx
    simp only [mem_Ioo, mem_univ_pi] at hx
    simp only [t, mem_iUnion, mem_univ_pi]
    let f : γ n := fun i =>
      ⟨⌊(x i - a i) * n⌋₊, by
        apply Nat.floor_lt_ceil_of_lt_of_pos
        · gcongr
          exact (hx i).right
        · refine mul_pos ?_ npos
          simpa only [Rat.cast_lt, sub_pos] using H i⟩
    refine ⟨f, fun i => ⟨?_, ?_⟩⟩
    · calc
        (a i : ℝ) + ⌊(x i - a i) * n⌋₊ / n ≤ (a i : ℝ) + (x i - a i) * n / n := by
          gcongr
          exact Nat.floor_le (mul_nonneg (sub_nonneg.2 (hx i).1.le) npos.le)
        _ = x i := by field
    · calc
        x i = (a i : ℝ) + (x i - a i) * n / n := by field
        _ ≤ (a i : ℝ) + (⌊(x i - a i) * n⌋₊ + 1) / n := by
          gcongr
          exact (Nat.lt_floor_add_one _).le
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
⊢ LE.le (α := ℝ≥0∞)
    (((μH[(↑(Fintype.card ι) : ℝ)] : Measure ((i : ι) → ℝ)) : (a : Set ((i : ι) → ℝ)) → ℝ≥0∞)
        (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) :
      ℝ≥0∞)
    (liminf (fun (n : ℕ) ↦ ∑ i : γ n, HPow.hPow (β := ℝ) (ediam (t n i)) (↑(Fintype.card ι) : ℝ)) atTop : ℝ≥0∞)

Tactic:
hausdorffMeasure_le_liminf_sum _ (Set.pi univ fun i => Ioo (a i : ℝ) (b i))
        (fun n : ℕ => 1 / (n : ℝ≥0∞)) A t B C

Premises used: MeasureTheory.Measure.hausdorffMeasure_le_liminf_sum, Set.univ, HDiv.hDiv, Rat.cast, Nat.cast, Set.pi, OfNat.ofNat, Set.Ioo
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
⊢ LE.le (α := ℝ≥0∞) (liminf (fun (n : ℕ) ↦ ∑ i : γ n, HPow.hPow (β := ℝ) (ediam (t n i)) (↑(Fintype.card ι) : ℝ)) atTop)
    (liminf (fun (n : ℕ) ↦ ∑ i : γ n, HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞) ^ Fintype.card ι) atTop)

Tactic:
liminf_le_liminf ?_ ?_

Premises used: Filter.liminf_le_liminf
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
refine_1 :
  ∀ᶠ (a_1 : ℕ) in atTop,
    LE.le (α := ℝ≥0∞) (∑ i : γ a_1, HPow.hPow (β := ℝ) (ediam (t a_1 i)) (↑(Fintype.card ι) : ℝ))
      (∑ i : γ a_1, HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞) ^ Fintype.card ι)
refine_2 :
  IsBoundedUnder (fun (x1 x2 : ℝ≥0∞) ↦ x1 ≥ x2) atTop fun (n : ℕ) ↦
    ∑ i : γ n, HPow.hPow (β := ℝ) (ediam (t n i)) (↑(Fintype.card ι) : ℝ)
⊢ LE.le (α := ℝ≥0∞) (liminf (fun (n : ℕ) ↦ ∑ i : γ n, HPow.hPow (β := ℝ) (ediam (t n i)) (↑(Fintype.card ι) : ℝ)) atTop)
    (liminf (fun (n : ℕ) ↦ ∑ i : γ n, HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞) ^ Fintype.card ι) atTop)

Tactic:
refine liminf_le_liminf ?_ ?_

Premises used: Filter.liminf_le_liminf
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
h :
  ∀ (a_1 : ℕ) (hn : ∀ (i : γ a_1), ediam (t a_1 i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞)),
    LE.le (α := ℝ≥0∞) (∑ i : γ a_1, HPow.hPow (β := ℝ) (ediam (t a_1 i)) (↑(Fintype.card ι) : ℝ))
      (∑ i : γ a_1, HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞) ^ Fintype.card ι)
⊢ ∀ᶠ (a_1 : ℕ) in atTop,
    LE.le (α := ℝ≥0∞) (∑ i : γ a_1, HPow.hPow (β := ℝ) (ediam (t a_1 i)) (↑(Fintype.card ι) : ℝ))
      (∑ i : γ a_1, HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞) ^ Fintype.card ι)

Tactic:
filter_upwards [B] with _ hn
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
a_1 : ℕ
hn : ∀ (i : γ a_1), ediam (t a_1 i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞)
apply :
  ∀ (i : γ a_1),
    Membership.mem (γ := Finset (γ a_1)) Finset.univ i →
      HPow.hPow (β := ℝ) (ediam (t a_1 i)) (↑(Fintype.card ι) : ℝ) ≤
        HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞) ^ Fintype.card ι
⊢ LE.le (α := ℝ≥0∞) (∑ i : γ a_1, HPow.hPow (β := ℝ) (ediam (t a_1 i)) (↑(Fintype.card ι) : ℝ))
    (∑ i : γ a_1, HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞) ^ Fintype.card ι)

Tactic:
apply Finset.sum_le_sum fun i _ => _

Premises used: Finset.sum_le_sum
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
a_1 : ℕ
hn : ∀ (i : γ a_1), ediam (t a_1 i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞)
simp :
  ∀ (i : γ a_1),
    Membership.mem (γ := Finset (γ a_1)) Finset.univ i →
      ediam (t a_1 i) ^ Fintype.card ι ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞) ^ Fintype.card ι
⊢ ∀ (i : γ a_1),
    Membership.mem (γ := Finset (γ a_1)) Finset.univ i →
      HPow.hPow (β := ℝ) (ediam (t a_1 i)) (↑(Fintype.card ι) : ℝ) ≤
        HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞) ^ Fintype.card ι

Tactic:
simp only [ENNReal.rpow_natCast]

Premises used: ENNReal.rpow_natCast
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
a_1 : ℕ
hn : ∀ (i : γ a_1), ediam (t a_1 i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞)
i : γ a_1
_ :
  Membership.mem (γ := Finset (γ a_1)) Finset.univ i →
    ediam (t a_1 i) ^ Fintype.card ι ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞) ^ Fintype.card ι
⊢ Membership.mem (γ := Finset (γ a_1)) Finset.univ i →
    ediam (t a_1 i) ^ Fintype.card ι ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞) ^ Fintype.card ι

Tactic:
_
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
a_1 : ℕ
hn : ∀ (i : γ a_1), ediam (t a_1 i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞)
i : γ a_1
h : Membership.mem (γ := Finset (γ a_1)) Finset.univ i
⊢ ediam (t a_1 i) ^ Fintype.card ι ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞) ^ Fintype.card ι

Tactic:
pow_le_pow_left' (hn i) _

Premises used: pow_le_pow_left'
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
a_1 : ℕ
hn : ∀ (i : γ a_1), ediam (t a_1 i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞)
i : γ a_1
h : Membership.mem (γ := Finset (γ a_1)) Finset.univ i
⊢ ediam (t a_1 i) ^ Fintype.card ι ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑a_1 : ℝ≥0∞) ^ Fintype.card ι

Tactic:
exact pow_le_pow_left' (hn i) _

Premises used: pow_le_pow_left'
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
⊢ IsBoundedUnder (fun (x1 x2 : ℝ≥0∞) ↦ x1 ≥ x2) atTop fun (n : ℕ) ↦
    ∑ i : γ n, HPow.hPow (β := ℝ) (ediam (t n i)) (↑(Fintype.card ι) : ℝ)

Tactic:
isBoundedDefault
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
⊢ Eq (α := ℝ≥0∞) (liminf (fun (n : ℕ) ↦ ∑ i : γ n, HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞) ^ Fintype.card ι) atTop)
    (liminf
      (fun (n : ℕ) ↦
        ∏ i : ι, HDiv.hDiv (α := ℝ≥0∞) (↑⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊ : ℝ≥0∞) (↑n : ℝ≥0∞))
      atTop)

Tactic:
simp only [γ, Finset.card_univ, Nat.cast_prod, one_mul, Fintype.card_fin, Finset.sum_const,
        nsmul_eq_mul, Fintype.card_pi, div_eq_mul_inv, Finset.prod_mul_distrib, Finset.prod_const]

Premises used: Fintype.card_pi, Finset.card_univ, Finset.prod_mul_distrib, Fintype.card_fin, Nat.cast_prod, Finset.prod_const, div_eq_mul_inv, nsmul_eq_mul, one_mul, Finset.sum_const
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
simp :
  Eq (α := ℝ≥0∞)
    (liminf
      (fun (n : ℕ) ↦
        ∏ i : ι, HDiv.hDiv (α := ℝ≥0∞) (↑⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊ : ℝ≥0∞) (↑n : ℝ≥0∞))
      atTop)
    (∏ x : ι, ENNReal.ofReal (HSub.hSub (α := ℝ) (↑(b x) : ℝ) (↑(a x) : ℝ)))
⊢ Eq (α := ℝ≥0∞)
    (liminf
      (fun (n : ℕ) ↦
        ∏ i : ι, HDiv.hDiv (α := ℝ≥0∞) (↑⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊ : ℝ≥0∞) (↑n : ℝ≥0∞))
      atTop)
    (∏ i : ι, (volume : (a : Set ℝ) → ℝ≥0∞) (Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)))

Tactic:
simp only [Real.volume_Ioo]

Premises used: Real.volume_Ioo
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
h :
  Tendsto (β := ℝ≥0∞)
    (fun (n : ℕ) ↦
      ∏ i : ι, HDiv.hDiv (α := ℝ≥0∞) (↑⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊ : ℝ≥0∞) (↑n : ℝ≥0∞))
    atTop (𝓝 (∏ x : ι, ENNReal.ofReal (HSub.hSub (α := ℝ) (↑(b x) : ℝ) (↑(a x) : ℝ))))
⊢ Eq (α := ℝ≥0∞)
    (liminf
      (fun (n : ℕ) ↦
        ∏ i : ι, HDiv.hDiv (α := ℝ≥0∞) (↑⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊ : ℝ≥0∞) (↑n : ℝ≥0∞))
      atTop)
    (∏ x : ι, ENNReal.ofReal (HSub.hSub (α := ℝ) (↑(b x) : ℝ) (↑(a x) : ℝ)))

Tactic:
apply Tendsto.liminf_eq

Premises used: Filter.Tendsto.liminf_eq
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
⊢ Tendsto (β := ℝ≥0∞)
    (fun (n : ℕ) ↦
      ∏ i : ι, HDiv.hDiv (α := ℝ≥0∞) (↑⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊ : ℝ≥0∞) (↑n : ℝ≥0∞))
    atTop (𝓝 (∏ x : ι, ENNReal.ofReal (HSub.hSub (α := ℝ) (↑(b x) : ℝ) (↑(a x) : ℝ))))

Tactic:
ENNReal.tendsto_finsetProd_of_ne_top _ (fun i _ => ?_) fun i _ => ?_

Premises used: ENNReal.tendsto_finsetProd_of_ne_top
-- Module: Mathlib.MeasureTheory.Measure.Hausdorff
Goal:
ι : Type u_4
inst : Fintype ι
a b : (i : ι) → ℚ
H : ∀ (i : ι), a i < b i
I : ∀ (i : ι), 0 ≤ HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)
γ : (n : ℕ) → Type u_4 := fun (n : ℕ) ↦ (i : ι) → Fin ⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊
t : (n : ℕ) → γ n → Set (ι → ℝ) :=
  fun (n : ℕ) (f : γ n) ↦
    Set.pi (α := fun (a : ι) ↦ ℝ) univ fun (i : ι) ↦
      Icc ((↑(a i) : ℝ) + HDiv.hDiv (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) (↑n : ℝ))
        ((↑(a i) : ℝ) + HAdd.hAdd (α := ℝ) (↑(↑(f i) : ℕ) : ℝ) 1 / (↑n : ℝ))
A : Tendsto (β := ℝ≥0∞) (fun (n : ℕ) ↦ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)) atTop (𝓝 0)
B : ∀ᶠ (n : ℕ) in atTop, ∀ (i : γ n), ediam (t n i) ≤ HDiv.hDiv (α := ℝ≥0∞) 1 (↑n : ℝ≥0∞)
C :
  ∀ᶠ (n : ℕ) in atTop,
    Subset.{u_4} (α := Set ((i : ι) → ℝ))
      (Set.pi (α := fun (i : ι) ↦ ℝ) univ fun (i : ι) ↦ Ioo (↑(a i) : ℝ) (↑(b i) : ℝ)) (⋃ (i : γ n), t n i)
h :
  ∀ (i : ι),
    Membership.mem (γ := Finset ι) Finset.univ i →
      Tendsto
        (fun (n : ℕ) ↦
          HDiv.hDiv (α := ℝ≥0∞) (↑⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊ : ℝ≥0∞) (↑n : ℝ≥0∞))
        atTop (𝓝 (ENNReal.ofReal (HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ))))
h₁ :
  ∀ (i : ι),
    Membership.mem (γ := Finset ι) Finset.univ i → ENNReal.ofReal (HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ)) ≠ ∞
⊢ Tendsto (β := ℝ≥0∞)
    (fun (n : ℕ) ↦
      ∏ i : ι, HDiv.hDiv (α := ℝ≥0∞) (↑⌈HSub.hSub (α := ℝ) (↑(b i) : ℝ) (↑(a i) : ℝ) * (↑n : ℝ)⌉₊ : ℝ≥0∞) (↑n : ℝ≥0∞))
    atTop (𝓝 (∏ x : ι, ENNReal.ofReal (HSub.hSub (α := ℝ) (↑(b x) : ℝ) (↑(a x) : ℝ))))

Tactic:
refine ENNReal.tendsto_finsetProd_of_ne_top _ (fun i _ => ?_) fun i _ => ?_

Premises used: ENNReal.tendsto_finsetProd_of_ne_top