Theorem: MeasureTheory.Measure.exists_positive_of_not_mutuallySingular
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
this :
  ∀ (n : ℕ),
    ∃ i,
      MeasurableSet i ∧
        VectorMeasure.restrict 0 i ≤
            VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) i ∧
          VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) iᶜ ≤
            VectorMeasure.restrict 0 iᶜ
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
tactic: have :
    ∀ n : ℕ, ∃ i : Set α,
      MeasurableSet i ∧
        0 ≤[i] μ.toSignedMeasure - ((1 / (n + 1) : ℝ≥0) • ν).toSignedMeasure ∧
          μ.toSignedMeasure - ((1 / (n + 1) : ℝ≥0) • ν).toSignedMeasure ≤[iᶜ] 0 := by
    intro; exact exists_compl_positive_negative _
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
this :
  ∀ (n : ℕ),
    ∃ i,
      MeasurableSet i ∧
        VectorMeasure.restrict 0 i ≤
            VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) i ∧
          VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) iᶜ ≤
            VectorMeasure.restrict 0 iᶜ
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
tactic: choose f hf₁ hf₂ hf₃ using this
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
tactic: let A := ⋂ n, (f n)ᶜ
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
tactic: have hAmeas : MeasurableSet A := MeasurableSet.iInter fun n ↦ (hf₁ n).compl
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
tactic: have hA₂ : ∀ n : ℕ, μ.toSignedMeasure - ((1 / (n + 1) : ℝ≥0) • ν).toSignedMeasure ≤[A] 0 := by
    intro n; exact restrict_le_restrict_subset _ _ (hf₁ n).compl (hf₃ n) (iInter_subset _ _)
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
hA₃ : ∀ (n : ℕ), μ A ≤ ↑(1 / (↑n + 1)) * ν A
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
tactic: have hA₃ : ∀ n : ℕ, μ A ≤ (1 / (n + 1) : ℝ≥0) * ν A := by
    intro n
    have := nonpos_of_restrict_le_zero _ (hA₂ n)
    rwa [toSignedMeasure_sub_apply hAmeas, sub_nonpos, ENNReal.toReal_le_toReal] at this
    exacts [measure_ne_top _ _, measure_ne_top _ _]
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬μ ⟂ₘ ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
hA₃ : ∀ (n : ℕ), μ A ≤ ↑(1 / (↑n + 1)) * ν A
hμ : μ A = 0
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬∃ s, MeasurableSet s ∧ μ s = 0 ∧ ν sᶜ = 0
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
hA₃ : ∀ (n : ℕ), μ A ≤ ↑(1 / (↑n + 1)) * ν A
hμ : μ A = 0
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
tactic: rw [MutuallySingular] at h
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
h : ¬∃ s, MeasurableSet s ∧ μ s = 0 ∧ ν sᶜ = 0
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
hA₃ : ∀ (n : ℕ), μ A ≤ ↑(1 / (↑n + 1)) * ν A
hμ : μ A = 0
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
hA₃ : ∀ (n : ℕ), μ A ≤ ↑(1 / (↑n + 1)) * ν A
hμ : μ A = 0
h : ∀ (s : Set α), MeasurableSet s → μ s = 0 → ν sᶜ ≠ 0
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
tactic: push_neg at h
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
hA₃ : ∀ (n : ℕ), μ A ≤ ↑(1 / (↑n + 1)) * ν A
hμ : μ A = 0
h : ∀ (s : Set α), MeasurableSet s → μ s = 0 → ν sᶜ ≠ 0
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
hA₃ : ∀ (n : ℕ), μ A ≤ ↑(1 / (↑n + 1)) * ν A
hμ : μ A = 0
h : ∀ (s : Set α), MeasurableSet s → μ s = 0 → ν sᶜ ≠ 0
this : ν Aᶜ ≠ 0
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
tactic: have := h _ hAmeas hμ
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
hA₃ : ∀ (n : ℕ), μ A ≤ ↑(1 / (↑n + 1)) * ν A
hμ : μ A = 0
h : ∀ (s : Set α), MeasurableSet s → μ s = 0 → ν sᶜ ≠ 0
this : ν Aᶜ ≠ 0
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
hA₃ : ∀ (n : ℕ), μ A ≤ ↑(1 / (↑n + 1)) * ν A
hμ : μ A = 0
h : ∀ (s : Set α), MeasurableSet s → μ s = 0 → ν sᶜ ≠ 0
this : ν (⋃ i, f i) ≠ 0
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
tactic: simp_rw [A, compl_iInter, compl_compl] at this
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
hA₃ : ∀ (n : ℕ), μ A ≤ ↑(1 / (↑n + 1)) * ν A
hμ : μ A = 0
h : ∀ (s : Set α), MeasurableSet s → μ s = 0 → ν sᶜ ≠ 0
this : ν (⋃ i, f i) ≠ 0
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
state_after: case intro
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
hA₃ : ∀ (n : ℕ), μ A ≤ ↑(1 / (↑n + 1)) * ν A
hμ : μ A = 0
h : ∀ (s : Set α), MeasurableSet s → μ s = 0 → ν sᶜ ≠ 0
this : ν (⋃ i, f i) ≠ 0
n : ℕ
hn : 0 < ν (f n)
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
tactic: obtain ⟨n, hn⟩ := exists_measure_pos_of_not_measure_iUnion_null this
state_before: case intro
α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ μ ν : Measure α
inst✝¹ : IsFiniteMeasure μ
inst✝ : IsFiniteMeasure ν
f : ℕ → Set α
hf₁ : ∀ (n : ℕ), MeasurableSet (f n)
hf₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict 0 (f n) ≤
      VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)
hf₃ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) (f n)ᶜ ≤
      VectorMeasure.restrict 0 (f n)ᶜ
A : Set α := ⋂ n, (f n)ᶜ
hAmeas : MeasurableSet A
hA₂ :
  ∀ (n : ℕ),
    VectorMeasure.restrict (μ.toSignedMeasure - ((1 / (↑n + 1)) • ν).toSignedMeasure) A ≤ VectorMeasure.restrict 0 A
hA₃ : ∀ (n : ℕ), μ A ≤ ↑(1 / (↑n + 1)) * ν A
hμ : μ A = 0
h : ∀ (s : Set α), MeasurableSet s → μ s = 0 → ν sᶜ ≠ 0
this : ν (⋃ i, f i) ≠ 0
n : ℕ
hn : 0 < ν (f n)
⊢ ∃ ε,
    0 < ε ∧
      ∃ E,
        MeasurableSet E ∧
          0 < ν E ∧ VectorMeasure.restrict 0 E ≤ VectorMeasure.restrict (μ.toSignedMeasure - (ε • ν).toSignedMeasure) E
state_after: no goals
tactic: exact ⟨1 / (n + 1), by simp, f n, hf₁ n, hn, hf₂ n⟩