Theorem: MeasureTheory.SignedMeasure.totalVariation_absolutelyContinuous_iff
File: Mathlib/MeasureTheory/Decomposition/Jordan.lean

tactic: constructor <;> intro h
state_before: α : Type u_1
β : Type ?u.93781
inst✝ : MeasurableSpace α
s : SignedMeasure α
μ : Measure α
⊢ totalVariation s ≪ μ ↔ (toJordanDecomposition s).posPart ≪ μ ∧ (toJordanDecomposition s).negPart ≪ μ

tactic: constructor
state_before: case mp
α : Type u_1
β : Type ?u.93781
inst✝ : MeasurableSpace α
s : SignedMeasure α
μ : Measure α
h : totalVariation s ≪ μ
⊢ (toJordanDecomposition s).posPart ≪ μ ∧ (toJordanDecomposition s).negPart ≪ μ

tactic: all_goals
  refine' Measure.AbsolutelyContinuous.mk fun S _ hS₂ => _
  have := h hS₂
  rw [totalVariation, Measure.add_apply, add_eq_zero_iff] at this
state_before: case mp.left
α : Type u_1
β : Type ?u.93781
inst✝ : MeasurableSpace α
s : SignedMeasure α
μ : Measure α
h : totalVariation s ≪ μ
⊢ (toJordanDecomposition s).posPart ≪ μ

case mp.right
α : Type u_1
β : Type ?u.93781
inst✝ : MeasurableSpace α
s : SignedMeasure α
μ : Measure α
h : totalVariation s ≪ μ
⊢ (toJordanDecomposition s).negPart ≪ μ

tactic: exacts [this.1, this.2]
state_before: case mp.left
α : Type u_1
β : Type ?u.93781
inst✝ : MeasurableSpace α
s : SignedMeasure α
μ : Measure α
h : totalVariation s ≪ μ
S : Set α
x✝ : MeasurableSet S
hS₂ : ↑↑μ S = 0
this : ↑↑(toJordanDecomposition s).posPart S = 0 ∧ ↑↑(toJordanDecomposition s).negPart S = 0
⊢ ↑↑(toJordanDecomposition s).posPart S = 0

case mp.right
α : Type u_1
β : Type ?u.93781
inst✝ : MeasurableSpace α
s : SignedMeasure α
μ : Measure α
h : totalVariation s ≪ μ
S : Set α
x✝ : MeasurableSet S
hS₂ : ↑↑μ S = 0
this : ↑↑(toJordanDecomposition s).posPart S = 0 ∧ ↑↑(toJordanDecomposition s).negPart S = 0
⊢ ↑↑(toJordanDecomposition s).negPart S = 0

tactic: refine' Measure.AbsolutelyContinuous.mk fun S _ hS₂ => _
state_before: case mp.right
α : Type u_1
β : Type ?u.93781
inst✝ : MeasurableSpace α
s : SignedMeasure α
μ : Measure α
h : totalVariation s ≪ μ
⊢ (toJordanDecomposition s).negPart ≪ μ

tactic: have := h hS₂
state_before: case mp.right
α : Type u_1
β : Type ?u.93781
inst✝ : MeasurableSpace α
s : SignedMeasure α
μ : Measure α
h : totalVariation s ≪ μ
S : Set α
x✝ : MeasurableSet S
hS₂ : ↑↑μ S = 0
⊢ ↑↑(toJordanDecomposition s).negPart S = 0

tactic: rw [totalVariation, Measure.add_apply, add_eq_zero_iff] at this
state_before: case mp.right
α : Type u_1
β : Type ?u.93781
inst✝ : MeasurableSpace α
s : SignedMeasure α
μ : Measure α
h : totalVariation s ≪ μ
S : Set α
x✝ : MeasurableSet S
hS₂ : ↑↑μ S = 0
this : ↑↑(totalVariation s) S = 0
⊢ ↑↑(toJordanDecomposition s).negPart S = 0

tactic: refine' Measure.AbsolutelyContinuous.mk fun S _ hS₂ => _
state_before: case mpr
α : Type u_1
β : Type ?u.93781
inst✝ : MeasurableSpace α
s : SignedMeasure α
μ : Measure α
h : (toJordanDecomposition s).posPart ≪ μ ∧ (toJordanDecomposition s).negPart ≪ μ
⊢ totalVariation s ≪ μ

tactic: rw [totalVariation, Measure.add_apply, h.1 hS₂, h.2 hS₂, add_zero]
state_before: case mpr
α : Type u_1
β : Type ?u.93781
inst✝ : MeasurableSpace α
s : SignedMeasure α
μ : Measure α
h : (toJordanDecomposition s).posPart ≪ μ ∧ (toJordanDecomposition s).negPart ≪ μ
S : Set α
x✝ : MeasurableSet S
hS₂ : ↑↑μ S = 0
⊢ ↑↑(totalVariation s) S = 0