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

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 ≠ ⊤
⊢ |(μ 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 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) ≠ ⊤
⊢ |(μ 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: 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
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: 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 \ 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: abel
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: rw [this, measure_symmDiff_eq hs ht, ENNReal.toReal_add hst hts]
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) ≠ ⊤
this : (μ s).toReal - (μ t).toReal = (μ (s \ t)).toReal - (μ (t \ s)).toReal
⊢ |(μ 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) ≠ ⊤
this : (μ s).toReal - (μ t).toReal = (μ (s \ t)).toReal - (μ (t \ s)).toReal
⊢ |(μ (s \ t)).toReal - (μ (t \ s)).toReal| ≤ (μ (s \ t)).toReal + (μ (t \ s)).toReal

tactic: 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) ≠ ⊤
this : (μ s).toReal - (μ t).toReal = (μ (s \ t)).toReal - (μ (t \ s)).toReal
⊢ |(μ (s \ t)).toReal - (μ (t \ s)).toReal| ≤ (μ (s \ t)).toReal + (μ (t \ s)).toReal
state_after: no goals