Theorem: MeasureTheory.abs_toReal_measure_sub_le_measure_symmDiff'
File: Mathlib/MeasureTheory/Measure/Typeclasses.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : μ s ≠ ⊤
ht' : μ t ≠ ⊤
⊢ |(μ s).toReal - (μ t).toReal| ≤ (μ (s ∆ t)).toReal
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : μ s ≠ ⊤
ht' : μ t ≠ ⊤
hst : μ (s \ t) ≠ ⊤
⊢ |(μ s).toReal - (μ t).toReal| ≤ (μ (s ∆ t)).toReal
tactic: have hst : μ (s \ t) ≠ ∞ := (measure_lt_top_of_subset diff_subset hs').ne
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : μ s ≠ ⊤
ht' : μ t ≠ ⊤
hst : μ (s \ t) ≠ ⊤
⊢ |(μ s).toReal - (μ t).toReal| ≤ (μ (s ∆ t)).toReal
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : μ s ≠ ⊤
ht' : μ t ≠ ⊤
hst : μ (s \ t) ≠ ⊤
hts : μ (t \ s) ≠ ⊤
⊢ |(μ s).toReal - (μ t).toReal| ≤ (μ (s ∆ t)).toReal
tactic: have hts : μ (t \ s) ≠ ∞ := (measure_lt_top_of_subset diff_subset ht').ne
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : μ s ≠ ⊤
ht' : μ t ≠ ⊤
hst : μ (s \ t) ≠ ⊤
hts : μ (t \ s) ≠ ⊤
⊢ |(μ s).toReal - (μ t).toReal| ≤ (μ (s ∆ t)).toReal
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : μ s ≠ ⊤
ht' : μ t ≠ ⊤
hst : μ (s \ t) ≠ ⊤
hts : μ (t \ s) ≠ ⊤
⊢ (μ s).toReal - (μ t).toReal = (μ (s \ t)).toReal - (μ (t \ s)).toReal
tactic: suffices (μ s).toReal - (μ t).toReal = (μ (s \ t)).toReal - (μ (t \ s)).toReal by
    rw [this, measure_symmDiff_eq hs ht, ENNReal.toReal_add hst hts]
    convert abs_sub (μ (s \ t)).toReal (μ (t \ s)).toReal <;> simp
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : μ s ≠ ⊤
ht' : μ t ≠ ⊤
hst : μ (s \ t) ≠ ⊤
hts : μ (t \ s) ≠ ⊤
⊢ (μ s).toReal - (μ t).toReal = (μ (s \ t)).toReal - (μ (t \ s)).toReal
state_after: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : μ s ≠ ⊤
ht' : μ t ≠ ⊤
hst : μ (s \ t) ≠ ⊤
hts : μ (t \ s) ≠ ⊤
⊢ (μ s).toReal - (μ t).toReal = (μ (s ∪ t)).toReal - (μ t).toReal - ((μ (s ∪ t)).toReal - (μ s).toReal)
tactic: rw [measure_diff' s ht ht', measure_diff' t hs hs',
    ENNReal.toReal_sub_of_le measure_le_measure_union_right (measure_union_ne_top hs' ht'),
    ENNReal.toReal_sub_of_le measure_le_measure_union_right (measure_union_ne_top ht' hs'),
    union_comm t s]
state_before: α : Type u_1
β : Type u_2
δ : Type u_3
ι : Type u_4
m0 : MeasurableSpace α
inst✝ : MeasurableSpace β
μ ν ν₁ ν₂ : Measure α
s t : Set α
hs : MeasurableSet s
ht : MeasurableSet t
hs' : μ s ≠ ⊤
ht' : μ t ≠ ⊤
hst : μ (s \ t) ≠ ⊤
hts : μ (t \ s) ≠ ⊤
⊢ (μ s).toReal - (μ t).toReal = (μ (s ∪ t)).toReal - (μ t).toReal - ((μ (s ∪ t)).toReal - (μ s).toReal)
state_after: no goals
tactic: abel