awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p q : ℝ≥0
hpq : p < q
s : Set α :=
  {x : α |
    ∃ (c : ℝ≥0∞),
      Tendsto
        (fun (a : Set α) ↦
          HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
        (v.filterAt x) (𝓝 c)}
o : ℕ → Set α := spanningSets (ρ + μ)
u : (n : ℕ) → Set α := fun (n : ℕ) ↦ s ∩ {x : α | v.limRatio ρ x < (↑p : ℝ≥0∞)} ∩ o n
w : (n : ℕ) → Set α := fun (n : ℕ) ↦ s ∩ {x : α | (↑q : ℝ≥0∞) < v.limRatio ρ x} ∩ o n
m n : ℕ
I : Ne (α := ℝ≥0∞) ((ρ + μ : (a : Set α) → ℝ≥0∞) (u m) : ℝ≥0∞) (∞ : ℝ≥0∞)
J : Ne (α := ℝ≥0∞) ((ρ + μ : (a : Set α) → ℝ≥0∞) (w n) : ℝ≥0∞) (∞ : ℝ≥0∞)
A :
  (ρ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) ≤
    HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞)
      ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞)
B :
  HMul.hMul (β := ℝ≥0∞) (↑q : ℝ≥0∞)
      ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞) ≤
    (ρ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n))
h :
  ¬Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞) (0 : ℝ≥0∞)
⊢ u m ⊆ spanningSets (ρ + μ) m

Tactic:
inter_subset_right

Premises used: Set.inter_subset_right
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p q : ℝ≥0
hpq : p < q
s : Set α :=
  {x : α |
    ∃ (c : ℝ≥0∞),
      Tendsto
        (fun (a : Set α) ↦
          HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
        (v.filterAt x) (𝓝 c)}
o : ℕ → Set α := spanningSets (ρ + μ)
u : (n : ℕ) → Set α := fun (n : ℕ) ↦ s ∩ {x : α | v.limRatio ρ x < (↑p : ℝ≥0∞)} ∩ o n
w : (n : ℕ) → Set α := fun (n : ℕ) ↦ s ∩ {x : α | (↑q : ℝ≥0∞) < v.limRatio ρ x} ∩ o n
m n : ℕ
I : Ne (α := ℝ≥0∞) ((ρ + μ : (a : Set α) → ℝ≥0∞) (u m) : ℝ≥0∞) (∞ : ℝ≥0∞)
J : Ne (α := ℝ≥0∞) ((ρ + μ : (a : Set α) → ℝ≥0∞) (w n) : ℝ≥0∞) (∞ : ℝ≥0∞)
A :
  (ρ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) ≤
    HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞)
      ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞)
B :
  HMul.hMul (β := ℝ≥0∞) (↑q : ℝ≥0∞)
      ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞) ≤
    (ρ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n))
h :
  ¬Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞) (0 : ℝ≥0∞)
⊢ u m ⊆ spanningSets (ρ + μ) m

Tactic:
exact inter_subset_right

Premises used: Set.inter_subset_right
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p q : ℝ≥0
hpq : p < q
s : Set α :=
  {x : α |
    ∃ (c : ℝ≥0∞),
      Tendsto
        (fun (a : Set α) ↦
          HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
        (v.filterAt x) (𝓝 c)}
o : ℕ → Set α := spanningSets (ρ + μ)
u : (n : ℕ) → Set α := fun (n : ℕ) ↦ s ∩ {x : α | v.limRatio ρ x < (↑p : ℝ≥0∞)} ∩ o n
w : (n : ℕ) → Set α := fun (n : ℕ) ↦ s ∩ {x : α | (↑q : ℝ≥0∞) < v.limRatio ρ x} ∩ o n
m n : ℕ
I : Ne (α := ℝ≥0∞) ((ρ + μ : (a : Set α) → ℝ≥0∞) (u m) : ℝ≥0∞) (∞ : ℝ≥0∞)
J : Ne (α := ℝ≥0∞) ((ρ + μ : (a : Set α) → ℝ≥0∞) (w n) : ℝ≥0∞) (∞ : ℝ≥0∞)
A :
  (ρ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) ≤
    HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞)
      ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞)
B :
  HMul.hMul (β := ℝ≥0∞) (↑q : ℝ≥0∞)
      ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞) ≤
    (ρ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n))
h :
  ¬Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞) (0 : ℝ≥0∞)
⊢ HMul.hMul (β := ℝ≥0∞) (↑q : ℝ≥0∞)
      ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞) ≤
    (ρ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n))

Tactic:
B
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p q : ℝ≥0
hpq : p < q
s : Set α :=
  {x : α |
    ∃ (c : ℝ≥0∞),
      Tendsto
        (fun (a : Set α) ↦
          HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
        (v.filterAt x) (𝓝 c)}
o : ℕ → Set α := spanningSets (ρ + μ)
u : (n : ℕ) → Set α := fun (n : ℕ) ↦ s ∩ {x : α | v.limRatio ρ x < (↑p : ℝ≥0∞)} ∩ o n
w : (n : ℕ) → Set α := fun (n : ℕ) ↦ s ∩ {x : α | (↑q : ℝ≥0∞) < v.limRatio ρ x} ∩ o n
m n : ℕ
I : Ne (α := ℝ≥0∞) ((ρ + μ : (a : Set α) → ℝ≥0∞) (u m) : ℝ≥0∞) (∞ : ℝ≥0∞)
J : Ne (α := ℝ≥0∞) ((ρ + μ : (a : Set α) → ℝ≥0∞) (w n) : ℝ≥0∞) (∞ : ℝ≥0∞)
A :
  (ρ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) ≤
    HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞)
      ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞)
B :
  HMul.hMul (β := ℝ≥0∞) (↑q : ℝ≥0∞)
      ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞) ≤
    (ρ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n))
h :
  ¬Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞) (0 : ℝ≥0∞)
ρ₁ :
  HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞)
      ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞) <
    HMul.hMul (β := ℝ≥0∞) (↑q : ℝ≥0∞)
      ((μ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞)
⊢ LT.lt (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞)
    ((ρ : (a : Set α) → ℝ≥0∞) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) : ℝ≥0∞)

Tactic:
calc
    ρ (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) ≤
        p * μ (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) :=
      A
    _ < q * μ (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) := by
      gcongr
      suffices H : (ρ + μ) (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) ≠ ∞ by
        simp only [not_or, ENNReal.add_eq_top, Pi.add_apply, Ne, coe_add] at H
        exact H.2
      apply (lt_of_le_of_lt (measure_mono inter_subset_left) _).ne
      rw [measure_toMeasurable]
      apply lt_of_le_of_lt (measure_mono _) (measure_spanningSets_lt_top (ρ + μ) m)
      exact inter_subset_right
    _ ≤ ρ (toMeasurable (ρ + μ) (u m) ∩ toMeasurable (ρ + μ) (w n)) := B

Premises used: Inter.inter, HAdd.hAdd, MeasureTheory.toMeasurable, DFunLike.coe
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
apply :
  ∀ (p q : ℝ≥0) (hpq : p < q),
    ∃ (u : Set α) (v_1 : Set α),
      MeasurableSet u ∧
        MeasurableSet v_1 ∧
          {x : α | v.limRatio ρ x < (↑p : ℝ≥0∞)} ⊆ u ∧
            {x : α | (↑q : ℝ≥0∞) < v.limRatio ρ x} ⊆ v_1 ∧
              Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (u ∩ v_1) : ℝ≥0∞) (0 : ℝ≥0∞)
⊢ AEMeasurable (v.limRatio ρ) μ

Tactic:
apply ENNReal.aemeasurable_of_exist_almost_disjoint_supersets _ _ fun p q hpq => ?_

Premises used: ENNReal.aemeasurable_of_exist_almost_disjoint_supersets
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p q : ℝ≥0
hpq : p < q
⊢ ∃ (u : Set α) (v_1 : Set α),
    MeasurableSet u ∧
      MeasurableSet v_1 ∧
        {x : α | v.limRatio ρ x < (↑p : ℝ≥0∞)} ⊆ u ∧
          {x : α | (↑q : ℝ≥0∞) < v.limRatio ρ x} ⊆ v_1 ∧
            Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (u ∩ v_1) : ℝ≥0∞) (0 : ℝ≥0∞)

Tactic:
v.exists_measurable_supersets_limRatio hρ hpq

Premises used: VitaliFamily.exists_measurable_supersets_limRatio
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p q : ℝ≥0
hpq : p < q
⊢ ∃ (u : Set α) (v_1 : Set α),
    MeasurableSet u ∧
      MeasurableSet v_1 ∧
        {x : α | v.limRatio ρ x < (↑p : ℝ≥0∞)} ⊆ u ∧
          {x : α | (↑q : ℝ≥0∞) < v.limRatio ρ x} ⊆ v_1 ∧
            Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (u ∩ v_1) : ℝ≥0∞) (0 : ℝ≥0∞)

Tactic:
exact v.exists_measurable_supersets_limRatio hρ hpq

Premises used: VitaliFamily.exists_measurable_supersets_limRatio
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
⊢ Measurable (v.limRatioMeas hρ)

Tactic:
AEMeasurable.measurable_mk _

Premises used: VitaliFamily.limRatioMeas, AEMeasurable.measurable_mk
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
h :
  ∀ (a : α),
    Tendsto
        (fun (a : Set α) ↦
          HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
        (v.filterAt a) (𝓝 (v.limRatio ρ a)) →
      v.limRatio ρ a = AEMeasurable.mk (v.limRatio ρ) ⋯ a →
        Tendsto
          (fun (a : Set α) ↦
            HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
          (v.filterAt a) (𝓝 (v.limRatioMeas hρ a))
⊢ ∀ᵐ (x : α) ∂μ,
    Tendsto
      (fun (a : Set α) ↦
        HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
      (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))

Tactic:
filter_upwards [v.ae_tendsto_limRatio hρ, AEMeasurable.ae_eq_mk (v.aemeasurable_limRatio hρ)]

Premises used: VitaliFamily.ae_tendsto_limRatio, AEMeasurable.ae_eq_mk, VitaliFamily.aemeasurable_limRatio
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
x : α
hx :
  Tendsto
    (fun (a : Set α) ↦
      HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
    (v.filterAt x) (𝓝 (v.limRatio ρ x))
h'x : v.limRatio ρ x = AEMeasurable.mk (v.limRatio ρ) ⋯ x
h h₁ h₂ h₃ :
  ∀
    (hx :
      Tendsto
        (fun (a : Set α) ↦
          HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
        (v.filterAt x) (𝓝 (AEMeasurable.mk (v.limRatio ρ) ⋯ x)))
    (h'x : v.limRatio ρ x = AEMeasurable.mk (v.limRatio ρ) ⋯ x),
    Tendsto
      (fun (a : Set α) ↦
        HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
      (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))
⊢ Tendsto
    (fun (a : Set α) ↦
      HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
    (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))

Tactic:
rwa [h'x] at hx
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p : ℝ≥0
s : Set α
h : s ⊆ {x : α | v.limRatioMeas hρ x < (↑p : ℝ≥0∞)}
t : Set α :=
  {x : α |
    Tendsto
      (fun (a : Set α) ↦
        HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
      (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))}
⊢ Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞) (0 : ℝ≥0∞)

Tactic:
have A : μ tᶜ = 0 := v.ae_tendsto_limRatioMeas hρ
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p : ℝ≥0
s : Set α
h : s ⊆ {x : α | v.limRatioMeas hρ x < (↑p : ℝ≥0∞)}
t : Set α :=
  {x : α |
    Tendsto
      (fun (a : Set α) ↦
        HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
      (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))}
A : Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞) (0 : ℝ≥0∞)
H : LE.le (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
rw rw₁ : Eq (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) s : ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) s : ℝ≥0∞)
⊢ Eq (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) s : ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t ∪ s ∩ tᶜ) : ℝ≥0∞)

Tactic:
rw [inter_union_compl]

Premises used: Set.inter_union_compl
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p : ℝ≥0
s : Set α
h : s ⊆ {x : α | v.limRatioMeas hρ x < (↑p : ℝ≥0∞)}
t : Set α :=
  {x : α |
    Tendsto
      (fun (a : Set α) ↦
        HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
      (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))}
A : Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞) (0 : ℝ≥0∞)
H : LE.le (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
⊢ (ρ : (a : Set α) → ℝ≥0∞) (s ∩ t ∪ s ∩ tᶜ) ≤
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
      ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ tᶜ) : ℝ≥0∞)

Tactic:
measure_union_le _ _

Premises used: MeasureTheory.measure_union_le
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p : ℝ≥0
s : Set α
h : s ⊆ {x : α | v.limRatioMeas hρ x < (↑p : ℝ≥0∞)}
t : Set α :=
  {x : α |
    Tendsto
      (fun (a : Set α) ↦
        HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
      (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))}
A : Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞) (0 : ℝ≥0∞)
H : LE.le (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
h₂ : s ∩ tᶜ ⊆ tᶜ
⊢ HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
      ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ tᶜ) : ℝ≥0∞) ≤
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞)

Tactic:
gcongr
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p : ℝ≥0
s : Set α
h : s ⊆ {x : α | v.limRatioMeas hρ x < (↑p : ℝ≥0∞)}
t : Set α :=
  {x : α |
    Tendsto
      (fun (a : Set α) ↦
        HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
      (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))}
A : Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞) (0 : ℝ≥0∞)
H : LE.le (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
⊢ s ∩ tᶜ ⊆ tᶜ

Tactic:
apply inter_subset_right

Premises used: Set.inter_subset_right
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p : ℝ≥0
s : Set α
h : s ⊆ {x : α | v.limRatioMeas hρ x < (↑p : ℝ≥0∞)}
t : Set α :=
  {x : α |
    Tendsto
      (fun (a : Set α) ↦
        HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
      (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))}
A : Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞) (0 : ℝ≥0∞)
H : LE.le (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
⊢ HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞) ≤
    HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)

Tactic:
simp [(hρ A)]
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p : ℝ≥0
s : Set α
h : s ⊆ {x : α | v.limRatioMeas hρ x < (↑p : ℝ≥0∞)}
t : Set α :=
  {x : α |
    Tendsto
      (fun (a : Set α) ↦
        HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
      (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))}
A : Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞) (0 : ℝ≥0∞)
H : LE.le (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
bc : s ∩ t ⊆ s
⊢ HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ≤
    HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) s : ℝ≥0∞)

Tactic:
gcongr
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p : ℝ≥0
s : Set α
h : s ⊆ {x : α | v.limRatioMeas hρ x < (↑p : ℝ≥0∞)}
t : Set α :=
  {x : α |
    Tendsto
      (fun (a : Set α) ↦
        HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
      (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))}
A : Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞) (0 : ℝ≥0∞)
H : LE.le (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
⊢ s ∩ t ⊆ s

Tactic:
apply inter_subset_left

Premises used: Set.inter_subset_left
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p : ℝ≥0
s : Set α
h : s ⊆ {x : α | v.limRatioMeas hρ x < (↑p : ℝ≥0∞)}
t : Set α :=
  {x : α |
    Tendsto
      (fun (a : Set α) ↦
        HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
      (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))}
A : Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞) (0 : ℝ≥0∞)
H : LE.le (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
ρ₁ : Eq (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) s : ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t ∪ s ∩ tᶜ) : ℝ≥0∞)
ρ₂ :
  HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
      ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ tᶜ) : ℝ≥0∞) ≤
    HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞)
ρ₃ :
  HAdd.hAdd (α := ℝ≥0∞) (β := ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞) ≤
    HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
ρ₄ :
  HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ≤
    HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) s : ℝ≥0∞)
⊢ (ρ : (a : Set α) → ℝ≥0∞) s ≤ HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) s : ℝ≥0∞)

Tactic:
calc
    ρ s = ρ (s ∩ t ∪ s ∩ tᶜ) := by rw [inter_union_compl]
    _ ≤ ρ (s ∩ t) + ρ (s ∩ tᶜ) := measure_union_le _ _
    _ ≤ (p • μ) (s ∩ t) + ρ tᶜ := by gcongr; apply inter_subset_right
    _ ≤ p * μ (s ∩ t) := by simp [(hρ A)]
    _ ≤ p * μ s := by gcongr; apply inter_subset_left

Premises used: Compl.compl, Inter.inter, HSMul.hSMul, Union.union, DFunLike.coe, MeasureTheory.measure_union_le
-- Module: Mathlib.MeasureTheory.Covering.Differentiation
Goal:
α : Type u_1
inst : PseudoMetricSpace α
m0 : MeasurableSpace α
μ : Measure α
v : VitaliFamily μ
inst_1 : SecondCountableTopology α
inst_2 : BorelSpace α
inst_3 : IsLocallyFiniteMeasure μ
ρ : Measure α
inst_4 : IsLocallyFiniteMeasure ρ
hρ : ρ ≪ μ
p : ℝ≥0
s : Set α
h : s ⊆ {x : α | v.limRatioMeas hρ x < (↑p : ℝ≥0∞)}
t : Set α :=
  {x : α |
    Tendsto
      (fun (a : Set α) ↦
        HDiv.hDiv (α := ℝ≥0∞) (β := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) a : ℝ≥0∞))
      (v.filterAt x) (𝓝 (v.limRatioMeas hρ x))}
A : Eq (α := ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) tᶜ : ℝ≥0∞) (0 : ℝ≥0∞)
suffices : LE.le (α := ℝ≥0∞) ((ρ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞) ((p • μ : (a : Set α) → ℝ≥0∞) (s ∩ t) : ℝ≥0∞)
⊢ (ρ : (a : Set α) → ℝ≥0∞) s ≤ HMul.hMul (β := ℝ≥0∞) (↑p : ℝ≥0∞) ((μ : (a : Set α) → ℝ≥0∞) s : ℝ≥0∞)

Tactic:
suffices H : ρ (s ∩ t) ≤ (p • μ) (s ∩ t) by calc
    ρ s = ρ (s ∩ t ∪ s ∩ tᶜ) := by rw [inter_union_compl]
    _ ≤ ρ (s ∩ t) + ρ (s ∩ tᶜ) := measure_union_le _ _
    _ ≤ (p • μ) (s ∩ t) + ρ tᶜ := by gcongr; apply inter_subset_right
    _ ≤ p * μ (s ∩ t) := by simp [(hρ A)]
    _ ≤ p * μ s := by gcongr; apply inter_subset_left