Theorem: MeasureTheory.exists_null_pairwise_disjoint_diff
File: Mathlib/MeasureTheory/Measure/AEDisjoint.lean

tactic: refine' ⟨fun i => toMeasurable μ (s i ∩ ⋃ j ∈ ({i}ᶜ : Set ι), s j), fun i =>
  measurableSet_toMeasurable _ _, fun i => _, _⟩
state_before: ι : Type u_1
α : Type u_2
m : MeasurableSpace α
μ : Measure α
s✝ t u v : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Pairwise (AEDisjoint μ on s)
⊢ ∃ t, (∀ (i : ι), MeasurableSet (t i)) ∧ (∀ (i : ι), ↑↑μ (t i) = 0) ∧ Pairwise (Disjoint on fun i => s i \ t i)

tactic: simp only [measure_toMeasurable, inter_iUnion]
state_before: case refine'_1
ι : Type u_1
α : Type u_2
m : MeasurableSpace α
μ : Measure α
s✝ t u v : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Pairwise (AEDisjoint μ on s)
i : ι
⊢ ↑↑μ ((fun i => toMeasurable μ (s i ∩ ⋃ (j : ι) (_ : j ∈ {i}ᶜ), s j)) i) = 0

tactic: exact (measure_biUnion_null_iff <| to_countable _).2 fun j hj => hd (Ne.symm hj)
state_before: case refine'_1
ι : Type u_1
α : Type u_2
m : MeasurableSpace α
μ : Measure α
s✝ t u v : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Pairwise (AEDisjoint μ on s)
i : ι
⊢ ↑↑μ (⋃ (i_1 : ι) (_ : i_1 ∈ {i}ᶜ), s i ∩ s i_1) = 0

tactic: simp only [Pairwise, disjoint_left, onFun, mem_diff, not_and, and_imp, Classical.not_not]
state_before: case refine'_2
ι : Type u_1
α : Type u_2
m : MeasurableSpace α
μ : Measure α
s✝ t u v : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Pairwise (AEDisjoint μ on s)
⊢ Pairwise (Disjoint on fun i => s i \ (fun i => toMeasurable μ (s i ∩ ⋃ (j : ι) (_ : j ∈ {i}ᶜ), s j)) i)

tactic: intro i j hne x hi hU hj
state_before: case refine'_2
ι : Type u_1
α : Type u_2
m : MeasurableSpace α
μ : Measure α
s✝ t u v : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Pairwise (AEDisjoint μ on s)
⊢ ∀ ⦃i j : ι⦄,
    i ≠ j →
      ∀ ⦃a : α⦄,
        a ∈ s i →
          ¬a ∈ toMeasurable μ (s i ∩ ⋃ (j : ι) (_ : j ∈ {i}ᶜ), s j) →
            a ∈ s j → a ∈ toMeasurable μ (s j ∩ ⋃ (j_1 : ι) (_ : j_1 ∈ {j}ᶜ), s j_1)

tactic: replace hU : x ∉ s i ∩ iUnion λ j => iUnion λ _ => s j := λ h => hU (subset_toMeasurable _ _ h)
state_before: case refine'_2
ι : Type u_1
α : Type u_2
m : MeasurableSpace α
μ : Measure α
s✝ t u v : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Pairwise (AEDisjoint μ on s)
i j : ι
hne : i ≠ j
x : α
hi : x ∈ s i
hU : ¬x ∈ toMeasurable μ (s i ∩ ⋃ (j : ι) (_ : j ∈ {i}ᶜ), s j)
hj : x ∈ s j
⊢ x ∈ toMeasurable μ (s j ∩ ⋃ (j_1 : ι) (_ : j_1 ∈ {j}ᶜ), s j_1)

tactic: simp only [mem_inter_iff, mem_iUnion, not_and, not_exists] at hU
state_before: case refine'_2
ι : Type u_1
α : Type u_2
m : MeasurableSpace α
μ : Measure α
s✝ t u v : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Pairwise (AEDisjoint μ on s)
i j : ι
hne : i ≠ j
x : α
hi : x ∈ s i
hj : x ∈ s j
hU : ¬x ∈ s i ∩ ⋃ (j : ι) (_ : j ∈ {i}ᶜ), s j
⊢ x ∈ toMeasurable μ (s j ∩ ⋃ (j_1 : ι) (_ : j_1 ∈ {j}ᶜ), s j_1)

tactic: exact (hU hi j hne.symm hj).elim
state_before: case refine'_2
ι : Type u_1
α : Type u_2
m : MeasurableSpace α
μ : Measure α
s✝ t u v : Set α
inst✝ : Countable ι
s : ι → Set α
hd : Pairwise (AEDisjoint μ on s)
i j : ι
hne : i ≠ j
x : α
hi : x ∈ s i
hj : x ∈ s j
hU : x ∈ s i → ∀ (x_1 : ι), x_1 ∈ {i}ᶜ → ¬x ∈ s x_1
⊢ x ∈ toMeasurable μ (s j ∩ ⋃ (j_1 : ι) (_ : j_1 ∈ {j}ᶜ), s j_1)