Theorem: MeasureTheory.Measure.measure_toMeasurable_inter_of_cover
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [toMeasurable]
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
A : ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
⊢ ↑↑μ (toMeasurable μ t ∩ s) = ↑↑μ (t ∩ s)

tactic: split_ifs with ht
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
A : ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
⊢ ↑↑μ
      ((if h : ∃ t_1 x, MeasurableSet t_1 ∧ t_1 =ᶠ[ae μ] t then Exists.choose h
        else
          if h' : ∃ t_1 x, MeasurableSet t_1 ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t_1 ∩ u) = ↑↑μ (t ∩ u) then
            Exists.choose h'
          else Exists.choose (_ : ∃ t_1, t ⊆ t_1 ∧ MeasurableSet t_1 ∧ ↑↑μ t_1 = ↑↑μ t)) ∩
        s) =
    ↑↑μ (t ∩ s)

tactic: let w n := toMeasurable μ (t ∩ v n)
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
⊢ ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)

tactic: have hw : ∀ n, μ (w n) < ∞ := by
  intro n
  simp_rw [measure_toMeasurable]
  exact (h'v n).lt_top
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
⊢ ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)

tactic: set t' := ⋃ n, toMeasurable μ (t ∩ disjointed w n) with ht'
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
⊢ ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)

tactic: have tt' : t ⊆ t' :=
  calc
    t ⊆ ⋃ n, t ∩ disjointed w n := by
      rw [← inter_iUnion, iUnion_disjointed, inter_iUnion]
      intro x hx
      rcases mem_iUnion.1 (hv hx) with ⟨n, hn⟩
      refine' mem_iUnion.2 ⟨n, _⟩
      have : x ∈ t ∩ v n := ⟨hx, hn⟩
      exact ⟨hx, subset_toMeasurable μ _ this⟩
    _ ⊆ ⋃ n, toMeasurable μ (t ∩ disjointed w n) :=
      iUnion_mono fun n => subset_toMeasurable _ _
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
⊢ ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)

tactic: refine' ⟨t', tt', MeasurableSet.iUnion fun n => measurableSet_toMeasurable μ _, fun u hu => _⟩
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
⊢ ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)

tactic: apply le_antisymm _ (measure_mono (inter_subset_inter tt' Subset.rfl))
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)

tactic: intro n
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
⊢ ∀ (n : ℕ), ↑↑μ (w n) < ⊤

tactic: simp_rw [measure_toMeasurable]
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
n : ℕ
⊢ ↑↑μ (w n) < ⊤

tactic: exact (h'v n).lt_top
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
n : ℕ
⊢ ↑↑μ (t ∩ v n) < ⊤

tactic: rw [← inter_iUnion, iUnion_disjointed, inter_iUnion]
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
⊢ t ⊆ ⋃ (n : ℕ), t ∩ disjointed w n

tactic: intro x hx
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
⊢ t ⊆ ⋃ (i : ℕ), t ∩ w i

tactic: rcases mem_iUnion.1 (hv hx) with ⟨n, hn⟩
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
x : α
hx : x ∈ t
⊢ x ∈ ⋃ (i : ℕ), t ∩ w i

tactic: refine' mem_iUnion.2 ⟨n, _⟩
state_before: case intro
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
x : α
hx : x ∈ t
n : ℕ
hn : x ∈ v n
⊢ x ∈ ⋃ (i : ℕ), t ∩ w i

tactic: have : x ∈ t ∩ v n := ⟨hx, hn⟩
state_before: case intro
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
x : α
hx : x ∈ t
n : ℕ
hn : x ∈ v n
⊢ x ∈ t ∩ w n

tactic: exact ⟨hx, subset_toMeasurable μ _ this⟩
state_before: case intro
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
x : α
hx : x ∈ t
n : ℕ
hn : x ∈ v n
this : x ∈ t ∩ v n
⊢ x ∈ t ∩ w n

tactic: rw [ht', iUnion_inter]
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ↑↑μ (t' ∩ u) ≤ ∑' (n : ℕ), ↑↑μ (toMeasurable μ (t ∩ disjointed w n) ∩ u)

tactic: exact measure_iUnion_le _
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ↑↑μ (⋃ (i : ℕ), toMeasurable μ (t ∩ disjointed w i) ∩ u) ≤ ∑' (n : ℕ), ↑↑μ (toMeasurable μ (t ∩ disjointed w n) ∩ u)

tactic: congr 1
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ (∑' (n : ℕ), ↑↑μ (toMeasurable μ (t ∩ disjointed w n) ∩ u)) = ∑' (n : ℕ), ↑↑μ (t ∩ disjointed w n ∩ u)

tactic: ext1 n
state_before: case e_f
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ (fun n => ↑↑μ (toMeasurable μ (t ∩ disjointed w n) ∩ u)) = fun n => ↑↑μ (t ∩ disjointed w n ∩ u)

tactic: apply measure_toMeasurable_inter hu
state_before: case e_f.h
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
n : ℕ
⊢ ↑↑μ (toMeasurable μ (t ∩ disjointed w n) ∩ u) = ↑↑μ (t ∩ disjointed w n ∩ u)

tactic: apply ne_of_lt
state_before: case e_f.h
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
n : ℕ
⊢ ↑↑μ (t ∩ disjointed w n) ≠ ⊤

tactic: calc
  μ (t ∩ disjointed w n) ≤ μ (t ∩ w n) :=
    measure_mono (inter_subset_inter_right _ (disjointed_le w n))
  _ ≤ μ (w n) := (measure_mono (inter_subset_right _ _))
  _ < ∞ := hw n
state_before: case e_f.h.h
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
n : ℕ
⊢ ↑↑μ (t ∩ disjointed w n) < ⊤

tactic: congr 1
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ (∑' (n : ℕ), ↑↑μ (t ∩ disjointed w n ∩ u)) = ∑' (n : ℕ), ↑↑(restrict μ (t ∩ u)) (disjointed w n)

tactic: ext1 n
state_before: case e_f
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ (fun n => ↑↑μ (t ∩ disjointed w n ∩ u)) = fun n => ↑↑(restrict μ (t ∩ u)) (disjointed w n)

tactic: rw [restrict_apply, inter_comm t _, inter_assoc]
state_before: case e_f.h
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
n : ℕ
⊢ ↑↑μ (t ∩ disjointed w n ∩ u) = ↑↑(restrict μ (t ∩ u)) (disjointed w n)

tactic: refine MeasurableSet.disjointed (fun n => ?_) n
state_before: case e_f.h
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
n : ℕ
⊢ MeasurableSet (disjointed w n)

tactic: exact measurableSet_toMeasurable _ _
state_before: case e_f.h
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
n✝ n : ℕ
⊢ MeasurableSet (w n)

tactic: rw [measure_iUnion]
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ (∑' (n : ℕ), ↑↑(restrict μ (t ∩ u)) (disjointed w n)) = ↑↑(restrict μ (t ∩ u)) (⋃ (n : ℕ), disjointed w n)

tactic: exact disjoint_disjointed _
state_before: case hn
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ Pairwise (Disjoint on fun n => disjointed w n)

tactic: intro i
state_before: case h
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ∀ (i : ℕ), MeasurableSet (disjointed w i)

tactic: refine MeasurableSet.disjointed (fun n => ?_) i
state_before: case h
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
i : ℕ
⊢ MeasurableSet (disjointed w i)

tactic: exact measurableSet_toMeasurable _ _
state_before: case h
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
i n : ℕ
⊢ MeasurableSet (w n)

tactic: rw [restrict_apply MeasurableSet.univ, univ_inter]
state_before: α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
w : ℕ → Set α := fun n => toMeasurable μ (t ∩ v n)
hw : ∀ (n : ℕ), ↑↑μ (w n) < ⊤
t' : Set α := ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
ht' : t' = ⋃ (n : ℕ), toMeasurable μ (t ∩ disjointed w n)
tt' : t ⊆ t'
u : Set α
hu : MeasurableSet u
⊢ ↑↑(restrict μ (t ∩ u)) univ = ↑↑μ (t ∩ u)

tactic: apply measure_congr
state_before: case inl
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
A : ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
ht : ∃ t_1 x, MeasurableSet t_1 ∧ t_1 =ᶠ[ae μ] t
⊢ ↑↑μ (Exists.choose (_ : ∃ t_1 x, MeasurableSet t_1 ∧ t_1 =ᶠ[ae μ] t) ∩ s) = ↑↑μ (t ∩ s)

tactic: exact ae_eq_set_inter ht.choose_spec.snd.2 (ae_eq_refl _)
state_before: case inl.H
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
A : ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
ht : ∃ t_1 x, MeasurableSet t_1 ∧ t_1 =ᶠ[ae μ] t
⊢ Exists.choose (_ : ∃ t_1 x, MeasurableSet t_1 ∧ t_1 =ᶠ[ae μ] t) ∩ s =ᶠ[ae μ] t ∩ s

tactic: exact A.choose_spec.snd.2 s hs
state_before: case inr
α : Type u_1
β : Type ?u.746309
γ : Type ?u.746312
δ : Type ?u.746315
ι : Type ?u.746318
R : Type ?u.746321
R' : Type ?u.746324
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s✝ s' t✝ s : Set α
hs : MeasurableSet s
t : Set α
v : ℕ → Set α
hv : t ⊆ ⋃ (n : ℕ), v n
h'v : ∀ (n : ℕ), ↑↑μ (t ∩ v n) ≠ ⊤
A : ∃ t' x, MeasurableSet t' ∧ ∀ (u : Set α), MeasurableSet u → ↑↑μ (t' ∩ u) = ↑↑μ (t ∩ u)
ht : ¬∃ t_1 x, MeasurableSet t_1 ∧ t_1 =ᶠ[ae μ] t
⊢ ↑↑μ (Exists.choose A ∩ s) = ↑↑μ (t ∩ s)