measure_theory.decomposition.jordan
⟷
Mathlib.MeasureTheory.Decomposition.Jordan
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -338,9 +338,9 @@ theorem subset_positive_null_set (hu : MeasurableSet u) (hv : MeasurableSet v)
theorem subset_negative_null_set (hu : MeasurableSet u) (hv : MeasurableSet v)
(hw : MeasurableSet w) (hsu : s ≤[u] 0) (hw₁ : s w = 0) (hw₂ : w ⊆ u) (hwt : v ⊆ w) : s v = 0 :=
by
- rw [← s.neg_le_neg_iff _ hu, neg_zero] at hsu
+ rw [← s.neg_le_neg_iff _ hu, neg_zero] at hsu
have := subset_positive_null_set hu hv hw hsu
- simp only [Pi.neg_apply, neg_eq_zero, coe_neg] at this
+ simp only [Pi.neg_apply, neg_eq_zero, coe_neg] at this
exact this hw₁ hw₂ hwt
#align measure_theory.signed_measure.subset_negative_null_set MeasureTheory.SignedMeasure.subset_negative_null_set
-/
@@ -351,13 +351,13 @@ between the two sets. -/
theorem of_diff_eq_zero_of_symmDiff_eq_zero_positive (hu : MeasurableSet u) (hv : MeasurableSet v)
(hsu : 0 ≤[u] s) (hsv : 0 ≤[v] s) (hs : s (u ∆ v) = 0) : s (u \ v) = 0 ∧ s (v \ u) = 0 :=
by
- rw [restrict_le_restrict_iff] at hsu hsv
+ rw [restrict_le_restrict_iff] at hsu hsv
have a := hsu (hu.diff hv) (u.diff_subset v)
have b := hsv (hv.diff hu) (v.diff_subset u)
erw [of_union (Set.disjoint_of_subset_left (u.diff_subset v) disjoint_sdiff_self_right)
(hu.diff hv) (hv.diff hu)] at
- hs
- rw [zero_apply] at a b
+ hs
+ rw [zero_apply] at a b
constructor
all_goals
first
@@ -373,10 +373,10 @@ between the two sets. -/
theorem of_diff_eq_zero_of_symmDiff_eq_zero_negative (hu : MeasurableSet u) (hv : MeasurableSet v)
(hsu : s ≤[u] 0) (hsv : s ≤[v] 0) (hs : s (u ∆ v) = 0) : s (u \ v) = 0 ∧ s (v \ u) = 0 :=
by
- rw [← s.neg_le_neg_iff _ hu, neg_zero] at hsu
- rw [← s.neg_le_neg_iff _ hv, neg_zero] at hsv
+ rw [← s.neg_le_neg_iff _ hu, neg_zero] at hsu
+ rw [← s.neg_le_neg_iff _ hv, neg_zero] at hsv
have := of_diff_eq_zero_of_symm_diff_eq_zero_positive hu hv hsu hsv
- simp only [Pi.neg_apply, neg_eq_zero, coe_neg] at this
+ simp only [Pi.neg_apply, neg_eq_zero, coe_neg] at this
exact this hs
#align measure_theory.signed_measure.of_diff_eq_zero_of_symm_diff_eq_zero_negative MeasureTheory.SignedMeasure.of_diff_eq_zero_of_symmDiff_eq_zero_negative
-/
@@ -406,10 +406,10 @@ theorem of_inter_eq_of_symmDiff_eq_zero_negative (hu : MeasurableSet u) (hv : Me
(hw : MeasurableSet w) (hsu : s ≤[u] 0) (hsv : s ≤[v] 0) (hs : s (u ∆ v) = 0) :
s (w ∩ u) = s (w ∩ v) :=
by
- rw [← s.neg_le_neg_iff _ hu, neg_zero] at hsu
- rw [← s.neg_le_neg_iff _ hv, neg_zero] at hsv
+ rw [← s.neg_le_neg_iff _ hu, neg_zero] at hsu
+ rw [← s.neg_le_neg_iff _ hv, neg_zero] at hsv
have := of_inter_eq_of_symm_diff_eq_zero_positive hu hv hw hsu hsv
- simp only [Pi.neg_apply, neg_inj, neg_eq_zero, coe_neg] at this
+ simp only [Pi.neg_apply, neg_inj, neg_eq_zero, coe_neg] at this
exact this hs
#align measure_theory.signed_measure.of_inter_eq_of_symm_diff_eq_zero_negative MeasureTheory.SignedMeasure.of_inter_eq_of_symmDiff_eq_zero_negative
-/
@@ -446,7 +446,7 @@ theorem toSignedMeasure_injective : Injective <| @JordanDecomposition.toSignedMe
-- obtain the two Hahn decompositions from the Jordan decompositions
obtain ⟨S, hS₁, hS₂, hS₃, hS₄, hS₅⟩ := j₁.exists_compl_positive_negative
obtain ⟨T, hT₁, hT₂, hT₃, hT₄, hT₅⟩ := j₂.exists_compl_positive_negative
- rw [← hj] at hT₂ hT₃
+ rw [← hj] at hT₂ hT₃
-- the symmetric differences of the two Hahn decompositions have measure zero
obtain ⟨hST₁, -⟩ :=
of_symm_diff_compl_positive_negative hS₁.compl hT₁.compl ⟨hS₃, (compl_compl S).symm ▸ hS₂⟩
@@ -605,7 +605,7 @@ theorem totalVariation_neg (s : SignedMeasure α) : (-s).totalVariation = s.tota
theorem null_of_totalVariation_zero (s : SignedMeasure α) {i : Set α}
(hs : s.totalVariation i = 0) : s i = 0 :=
by
- rw [total_variation, measure.coe_add, Pi.add_apply, add_eq_zero_iff] at hs
+ rw [total_variation, measure.coe_add, Pi.add_apply, add_eq_zero_iff] at hs
rw [← to_signed_measure_to_jordan_decomposition s, to_signed_measure, vector_measure.coe_sub,
Pi.sub_apply, measure.to_signed_measure_apply, measure.to_signed_measure_apply]
by_cases hi : MeasurableSet i
@@ -623,11 +623,11 @@ theorem absolutelyContinuous_ennreal_iff (s : SignedMeasure α) (μ : VectorMeas
obtain ⟨i, hi₁, hi₂, hi₃, hpos, hneg⟩ := s.to_jordan_decomposition_spec
rw [total_variation, measure.add_apply, hpos, hneg, to_measure_of_zero_le_apply _ _ _ hS₁,
to_measure_of_le_zero_apply _ _ _ hS₁]
- rw [← vector_measure.absolutely_continuous.ennreal_to_measure] at h
+ rw [← vector_measure.absolutely_continuous.ennreal_to_measure] at h
simp [h (measure_mono_null (i.inter_subset_right S) hS₂),
h (measure_mono_null (iᶜ.inter_subset_right S) hS₂)]
· refine' vector_measure.absolutely_continuous.mk fun S hS₁ hS₂ => _
- rw [← vector_measure.ennreal_to_measure_apply hS₁] at hS₂
+ rw [← vector_measure.ennreal_to_measure_apply hS₁] at hS₂
exact null_of_total_variation_zero s (h hS₂)
#align measure_theory.signed_measure.absolutely_continuous_ennreal_iff MeasureTheory.SignedMeasure.absolutelyContinuous_ennreal_iff
-/
@@ -642,7 +642,7 @@ theorem totalVariation_absolutelyContinuous_iff (s : SignedMeasure α) (μ : Mea
all_goals
refine' measure.absolutely_continuous.mk fun S hS₁ hS₂ => _
have := h hS₂
- rw [total_variation, measure.add_apply, add_eq_zero_iff] at this
+ rw [total_variation, measure.add_apply, add_eq_zero_iff] at this
exacts [this.1, this.2]
· refine' measure.absolutely_continuous.mk fun S hS₁ hS₂ => _
rw [total_variation, measure.add_apply, h.1 hS₂, h.2 hS₂, add_zero]
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2021 Kexing Ying. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kexing Ying
-/
-import Mathbin.MeasureTheory.Decomposition.SignedHahn
-import Mathbin.MeasureTheory.Measure.MutuallySingular
+import MeasureTheory.Decomposition.SignedHahn
+import MeasureTheory.Measure.MutuallySingular
#align_import measure_theory.decomposition.jordan from "leanprover-community/mathlib"@"61b5e2755ccb464b68d05a9acf891ae04992d09d"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2021 Kexing Ying. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kexing Ying
-
-! This file was ported from Lean 3 source module measure_theory.decomposition.jordan
-! leanprover-community/mathlib commit 61b5e2755ccb464b68d05a9acf891ae04992d09d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.MeasureTheory.Decomposition.SignedHahn
import Mathbin.MeasureTheory.Measure.MutuallySingular
+#align_import measure_theory.decomposition.jordan from "leanprover-community/mathlib"@"61b5e2755ccb464b68d05a9acf891ae04992d09d"
+
/-!
# Jordan decomposition
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -303,7 +303,7 @@ theorem toSignedMeasure_toJordanDecomposition (s : SignedMeasure α) :
by
obtain ⟨i, hi₁, hi₂, hi₃, hμ, hν⟩ := s.to_jordan_decomposition_spec
simp only [jordan_decomposition.to_signed_measure, hμ, hν]
- ext (k hk)
+ ext k hk
rw [to_signed_measure_sub_apply hk, to_measure_of_zero_le_apply _ hi₂ hi₁ hk,
to_measure_of_le_zero_apply _ hi₃ hi₁.compl hk]
simp only [ENNReal.coe_toReal, Subtype.coe_mk, ENNReal.some_eq_coe, sub_neg_eq_add]
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -112,59 +112,83 @@ theorem zero_negPart : (0 : JordanDecomposition α).negPart = 0 :=
#align measure_theory.jordan_decomposition.zero_neg_part MeasureTheory.JordanDecomposition.zero_negPart
-/
+#print MeasureTheory.JordanDecomposition.neg_posPart /-
@[simp]
theorem neg_posPart : (-j).posPart = j.negPart :=
rfl
#align measure_theory.jordan_decomposition.neg_pos_part MeasureTheory.JordanDecomposition.neg_posPart
+-/
+#print MeasureTheory.JordanDecomposition.neg_negPart /-
@[simp]
theorem neg_negPart : (-j).negPart = j.posPart :=
rfl
#align measure_theory.jordan_decomposition.neg_neg_part MeasureTheory.JordanDecomposition.neg_negPart
+-/
+#print MeasureTheory.JordanDecomposition.smul_posPart /-
@[simp]
theorem smul_posPart (r : ℝ≥0) : (r • j).posPart = r • j.posPart :=
rfl
#align measure_theory.jordan_decomposition.smul_pos_part MeasureTheory.JordanDecomposition.smul_posPart
+-/
+#print MeasureTheory.JordanDecomposition.smul_negPart /-
@[simp]
theorem smul_negPart (r : ℝ≥0) : (r • j).negPart = r • j.negPart :=
rfl
#align measure_theory.jordan_decomposition.smul_neg_part MeasureTheory.JordanDecomposition.smul_negPart
+-/
+#print MeasureTheory.JordanDecomposition.real_smul_def /-
theorem real_smul_def (r : ℝ) (j : JordanDecomposition α) :
r • j = if hr : 0 ≤ r then r.toNNReal • j else -((-r).toNNReal • j) :=
rfl
#align measure_theory.jordan_decomposition.real_smul_def MeasureTheory.JordanDecomposition.real_smul_def
+-/
+#print MeasureTheory.JordanDecomposition.coe_smul /-
@[simp]
theorem coe_smul (r : ℝ≥0) : (r : ℝ) • j = r • j :=
show dite _ _ _ = _ by rw [dif_pos (NNReal.coe_nonneg r), Real.toNNReal_coe]
#align measure_theory.jordan_decomposition.coe_smul MeasureTheory.JordanDecomposition.coe_smul
+-/
+#print MeasureTheory.JordanDecomposition.real_smul_nonneg /-
theorem real_smul_nonneg (r : ℝ) (hr : 0 ≤ r) : r • j = r.toNNReal • j :=
dif_pos hr
#align measure_theory.jordan_decomposition.real_smul_nonneg MeasureTheory.JordanDecomposition.real_smul_nonneg
+-/
+#print MeasureTheory.JordanDecomposition.real_smul_neg /-
theorem real_smul_neg (r : ℝ) (hr : r < 0) : r • j = -((-r).toNNReal • j) :=
dif_neg (not_le.2 hr)
#align measure_theory.jordan_decomposition.real_smul_neg MeasureTheory.JordanDecomposition.real_smul_neg
+-/
+#print MeasureTheory.JordanDecomposition.real_smul_posPart_nonneg /-
theorem real_smul_posPart_nonneg (r : ℝ) (hr : 0 ≤ r) : (r • j).posPart = r.toNNReal • j.posPart :=
by rw [real_smul_def, ← smul_pos_part, dif_pos hr]
#align measure_theory.jordan_decomposition.real_smul_pos_part_nonneg MeasureTheory.JordanDecomposition.real_smul_posPart_nonneg
+-/
+#print MeasureTheory.JordanDecomposition.real_smul_negPart_nonneg /-
theorem real_smul_negPart_nonneg (r : ℝ) (hr : 0 ≤ r) : (r • j).negPart = r.toNNReal • j.negPart :=
by rw [real_smul_def, ← smul_neg_part, dif_pos hr]
#align measure_theory.jordan_decomposition.real_smul_neg_part_nonneg MeasureTheory.JordanDecomposition.real_smul_negPart_nonneg
+-/
+#print MeasureTheory.JordanDecomposition.real_smul_posPart_neg /-
theorem real_smul_posPart_neg (r : ℝ) (hr : r < 0) : (r • j).posPart = (-r).toNNReal • j.negPart :=
by rw [real_smul_def, ← smul_neg_part, dif_neg (not_le.2 hr), neg_pos_part]
#align measure_theory.jordan_decomposition.real_smul_pos_part_neg MeasureTheory.JordanDecomposition.real_smul_posPart_neg
+-/
+#print MeasureTheory.JordanDecomposition.real_smul_negPart_neg /-
theorem real_smul_negPart_neg (r : ℝ) (hr : r < 0) : (r • j).negPart = (-r).toNNReal • j.posPart :=
by rw [real_smul_def, ← smul_pos_part, dif_neg (not_le.2 hr), neg_neg_part]
#align measure_theory.jordan_decomposition.real_smul_neg_part_neg MeasureTheory.JordanDecomposition.real_smul_negPart_neg
+-/
#print MeasureTheory.JordanDecomposition.toSignedMeasure /-
/-- The signed measure associated with a Jordan decomposition. -/
@@ -181,6 +205,7 @@ theorem toSignedMeasure_zero : (0 : JordanDecomposition α).toSignedMeasure = 0
#align measure_theory.jordan_decomposition.to_signed_measure_zero MeasureTheory.JordanDecomposition.toSignedMeasure_zero
-/
+#print MeasureTheory.JordanDecomposition.toSignedMeasure_neg /-
theorem toSignedMeasure_neg : (-j).toSignedMeasure = -j.toSignedMeasure :=
by
ext1 i hi
@@ -188,7 +213,9 @@ theorem toSignedMeasure_neg : (-j).toSignedMeasure = -j.toSignedMeasure :=
to_signed_measure_sub_apply hi, neg_sub]
rfl
#align measure_theory.jordan_decomposition.to_signed_measure_neg MeasureTheory.JordanDecomposition.toSignedMeasure_neg
+-/
+#print MeasureTheory.JordanDecomposition.toSignedMeasure_smul /-
theorem toSignedMeasure_smul (r : ℝ≥0) : (r • j).toSignedMeasure = r • j.toSignedMeasure :=
by
ext1 i hi
@@ -197,7 +224,9 @@ theorem toSignedMeasure_smul (r : ℝ≥0) : (r • j).toSignedMeasure = r • j
smul_neg_part, ← ENNReal.toReal_smul, ← ENNReal.toReal_smul]
rfl
#align measure_theory.jordan_decomposition.to_signed_measure_smul MeasureTheory.JordanDecomposition.toSignedMeasure_smul
+-/
+#print MeasureTheory.JordanDecomposition.exists_compl_positive_negative /-
/-- A Jordan decomposition provides a Hahn decomposition. -/
theorem exists_compl_positive_negative :
∃ S : Set α,
@@ -218,6 +247,7 @@ theorem exists_compl_positive_negative :
sub_zero]
exact ENNReal.toReal_nonneg
#align measure_theory.jordan_decomposition.exists_compl_positive_negative MeasureTheory.JordanDecomposition.exists_compl_positive_negative
+-/
end JordanDecomposition
@@ -246,6 +276,7 @@ def toJordanDecomposition (s : SignedMeasure α) : JordanDecomposition α :=
#align measure_theory.signed_measure.to_jordan_decomposition MeasureTheory.SignedMeasure.toJordanDecomposition
-/
+#print MeasureTheory.SignedMeasure.toJordanDecomposition_spec /-
theorem toJordanDecomposition_spec (s : SignedMeasure α) :
∃ (i : Set α) (hi₁ : MeasurableSet i) (hi₂ : 0 ≤[i] s) (hi₃ : s ≤[iᶜ] 0),
s.toJordanDecomposition.posPart = s.toMeasureOfZeroLE i hi₁ hi₂ ∧
@@ -255,6 +286,7 @@ theorem toJordanDecomposition_spec (s : SignedMeasure α) :
obtain ⟨hi₁, hi₂, hi₃⟩ := some_spec s.exists_compl_positive_negative
exact ⟨i, hi₁, hi₂, hi₃, rfl, rfl⟩
#align measure_theory.signed_measure.to_jordan_decomposition_spec MeasureTheory.SignedMeasure.toJordanDecomposition_spec
+-/
#print MeasureTheory.SignedMeasure.toSignedMeasure_toJordanDecomposition /-
/-- **The Jordan decomposition theorem**: Given a signed measure `s`, there exists a pair of
@@ -286,6 +318,7 @@ section
variable {u v w : Set α}
+#print MeasureTheory.SignedMeasure.subset_positive_null_set /-
/-- A subset `v` of a null-set `w` has zero measure if `w` is a subset of a positive set `u`. -/
theorem subset_positive_null_set (hu : MeasurableSet u) (hv : MeasurableSet v)
(hw : MeasurableSet w) (hsu : 0 ≤[u] s) (hw₁ : s w = 0) (hw₂ : w ⊆ u) (hwt : v ⊆ w) : s v = 0 :=
@@ -301,7 +334,9 @@ theorem subset_positive_null_set (hu : MeasurableSet u) (hv : MeasurableSet v)
(restrict_le_restrict_subset _ _ hu hsu ((w.diff_subset v).trans hw₂))
linarith
#align measure_theory.signed_measure.subset_positive_null_set MeasureTheory.SignedMeasure.subset_positive_null_set
+-/
+#print MeasureTheory.SignedMeasure.subset_negative_null_set /-
/-- A subset `v` of a null-set `w` has zero measure if `w` is a subset of a negative set `u`. -/
theorem subset_negative_null_set (hu : MeasurableSet u) (hv : MeasurableSet v)
(hw : MeasurableSet w) (hsu : s ≤[u] 0) (hw₁ : s w = 0) (hw₂ : w ⊆ u) (hwt : v ⊆ w) : s v = 0 :=
@@ -311,7 +346,9 @@ theorem subset_negative_null_set (hu : MeasurableSet u) (hv : MeasurableSet v)
simp only [Pi.neg_apply, neg_eq_zero, coe_neg] at this
exact this hw₁ hw₂ hwt
#align measure_theory.signed_measure.subset_negative_null_set MeasureTheory.SignedMeasure.subset_negative_null_set
+-/
+#print MeasureTheory.SignedMeasure.of_diff_eq_zero_of_symmDiff_eq_zero_positive /-
/-- If the symmetric difference of two positive sets is a null-set, then so are the differences
between the two sets. -/
theorem of_diff_eq_zero_of_symmDiff_eq_zero_positive (hu : MeasurableSet u) (hv : MeasurableSet v)
@@ -331,7 +368,9 @@ theorem of_diff_eq_zero_of_symmDiff_eq_zero_positive (hu : MeasurableSet u) (hv
| infer_instance
| assumption
#align measure_theory.signed_measure.of_diff_eq_zero_of_symm_diff_eq_zero_positive MeasureTheory.SignedMeasure.of_diff_eq_zero_of_symmDiff_eq_zero_positive
+-/
+#print MeasureTheory.SignedMeasure.of_diff_eq_zero_of_symmDiff_eq_zero_negative /-
/-- If the symmetric difference of two negative sets is a null-set, then so are the differences
between the two sets. -/
theorem of_diff_eq_zero_of_symmDiff_eq_zero_negative (hu : MeasurableSet u) (hv : MeasurableSet v)
@@ -343,7 +382,9 @@ theorem of_diff_eq_zero_of_symmDiff_eq_zero_negative (hu : MeasurableSet u) (hv
simp only [Pi.neg_apply, neg_eq_zero, coe_neg] at this
exact this hs
#align measure_theory.signed_measure.of_diff_eq_zero_of_symm_diff_eq_zero_negative MeasureTheory.SignedMeasure.of_diff_eq_zero_of_symmDiff_eq_zero_negative
+-/
+#print MeasureTheory.SignedMeasure.of_inter_eq_of_symmDiff_eq_zero_positive /-
theorem of_inter_eq_of_symmDiff_eq_zero_positive (hu : MeasurableSet u) (hv : MeasurableSet v)
(hw : MeasurableSet w) (hsu : 0 ≤[u] s) (hsv : 0 ≤[v] s) (hs : s (u ∆ v) = 0) :
s (w ∩ u) = s (w ∩ v) :=
@@ -361,7 +402,9 @@ theorem of_inter_eq_of_symmDiff_eq_zero_positive (hu : MeasurableSet u) (hv : Me
(restrict_le_restrict_subset _ _ hv hsv (w.inter_subset_right v)) hwuv
rw [← of_diff_of_diff_eq_zero (hw.inter hu) (hw.inter hv) hvu, huv, zero_add]
#align measure_theory.signed_measure.of_inter_eq_of_symm_diff_eq_zero_positive MeasureTheory.SignedMeasure.of_inter_eq_of_symmDiff_eq_zero_positive
+-/
+#print MeasureTheory.SignedMeasure.of_inter_eq_of_symmDiff_eq_zero_negative /-
theorem of_inter_eq_of_symmDiff_eq_zero_negative (hu : MeasurableSet u) (hv : MeasurableSet v)
(hw : MeasurableSet w) (hsu : s ≤[u] 0) (hsv : s ≤[v] 0) (hs : s (u ∆ v) = 0) :
s (w ∩ u) = s (w ∩ v) :=
@@ -372,6 +415,7 @@ theorem of_inter_eq_of_symmDiff_eq_zero_negative (hu : MeasurableSet u) (hv : Me
simp only [Pi.neg_apply, neg_inj, neg_eq_zero, coe_neg] at this
exact this hs
#align measure_theory.signed_measure.of_inter_eq_of_symm_diff_eq_zero_negative MeasureTheory.SignedMeasure.of_inter_eq_of_symmDiff_eq_zero_negative
+-/
end
@@ -491,12 +535,14 @@ theorem toJordanDecomposition_zero : (0 : SignedMeasure α).toJordanDecompositio
#align measure_theory.signed_measure.to_jordan_decomposition_zero MeasureTheory.SignedMeasure.toJordanDecomposition_zero
-/
+#print MeasureTheory.SignedMeasure.toJordanDecomposition_neg /-
theorem toJordanDecomposition_neg (s : SignedMeasure α) :
(-s).toJordanDecomposition = -s.toJordanDecomposition :=
by
apply to_signed_measure_injective
simp [to_signed_measure_neg]
#align measure_theory.signed_measure.to_jordan_decomposition_neg MeasureTheory.SignedMeasure.toJordanDecomposition_neg
+-/
#print MeasureTheory.SignedMeasure.toJordanDecomposition_smul /-
theorem toJordanDecomposition_smul (s : SignedMeasure α) (r : ℝ≥0) :
@@ -558,6 +604,7 @@ theorem totalVariation_neg (s : SignedMeasure α) : (-s).totalVariation = s.tota
#align measure_theory.signed_measure.total_variation_neg MeasureTheory.SignedMeasure.totalVariation_neg
-/
+#print MeasureTheory.SignedMeasure.null_of_totalVariation_zero /-
theorem null_of_totalVariation_zero (s : SignedMeasure α) {i : Set α}
(hs : s.totalVariation i = 0) : s i = 0 :=
by
@@ -568,7 +615,9 @@ theorem null_of_totalVariation_zero (s : SignedMeasure α) {i : Set α}
· rw [if_pos hi, if_pos hi]; simp [hs.1, hs.2]
· simp [if_neg hi]
#align measure_theory.signed_measure.null_of_total_variation_zero MeasureTheory.SignedMeasure.null_of_totalVariation_zero
+-/
+#print MeasureTheory.SignedMeasure.absolutelyContinuous_ennreal_iff /-
theorem absolutelyContinuous_ennreal_iff (s : SignedMeasure α) (μ : VectorMeasure α ℝ≥0∞) :
s ≪ᵥ μ ↔ s.totalVariation ≪ μ.ennrealToMeasure :=
by
@@ -584,6 +633,7 @@ theorem absolutelyContinuous_ennreal_iff (s : SignedMeasure α) (μ : VectorMeas
rw [← vector_measure.ennreal_to_measure_apply hS₁] at hS₂
exact null_of_total_variation_zero s (h hS₂)
#align measure_theory.signed_measure.absolutely_continuous_ennreal_iff MeasureTheory.SignedMeasure.absolutelyContinuous_ennreal_iff
+-/
#print MeasureTheory.SignedMeasure.totalVariation_absolutelyContinuous_iff /-
theorem totalVariation_absolutelyContinuous_iff (s : SignedMeasure α) (μ : Measure α) :
@@ -626,6 +676,7 @@ theorem mutuallySingular_iff (s t : SignedMeasure α) :
#align measure_theory.signed_measure.mutually_singular_iff MeasureTheory.SignedMeasure.mutuallySingular_iff
-/
+#print MeasureTheory.SignedMeasure.mutuallySingular_ennreal_iff /-
theorem mutuallySingular_ennreal_iff (s : SignedMeasure α) (μ : VectorMeasure α ℝ≥0∞) :
s ⟂ᵥ μ ↔ s.totalVariation ⟂ₘ μ.ennrealToMeasure :=
by
@@ -646,6 +697,7 @@ theorem mutuallySingular_ennreal_iff (s : SignedMeasure α) (μ : VectorMeasure
rw [← vector_measure.ennreal_to_measure_apply hmt]
exact measure_mono_null htv hu₂
#align measure_theory.signed_measure.mutually_singular_ennreal_iff MeasureTheory.SignedMeasure.mutuallySingular_ennreal_iff
+-/
#print MeasureTheory.SignedMeasure.totalVariation_mutuallySingular_iff /-
theorem totalVariation_mutuallySingular_iff (s : SignedMeasure α) (μ : Measure α) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -62,8 +62,8 @@ finite measures. -/
@[ext]
structure JordanDecomposition (α : Type _) [MeasurableSpace α] where
(posPart negPart : Measure α)
- [posPart_finite : FiniteMeasure pos_part]
- [negPart_finite : FiniteMeasure neg_part]
+ [posPart_finite : IsFiniteMeasure pos_part]
+ [negPart_finite : IsFiniteMeasure neg_part]
MutuallySingular : pos_part ⟂ₘ neg_part
#align measure_theory.jordan_decomposition MeasureTheory.JordanDecomposition
-/
@@ -225,7 +225,7 @@ namespace SignedMeasure
open Classical JordanDecomposition Measure Set VectorMeasure
-variable {s : SignedMeasure α} {μ ν : Measure α} [FiniteMeasure μ] [FiniteMeasure ν]
+variable {s : SignedMeasure α} {μ ν : Measure α} [IsFiniteMeasure μ] [IsFiniteMeasure ν]
#print MeasureTheory.SignedMeasure.toJordanDecomposition /-
/-- Given a signed measure `s`, `s.to_jordan_decomposition` is the Jordan decomposition `j`,
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -247,7 +247,7 @@ def toJordanDecomposition (s : SignedMeasure α) : JordanDecomposition α :=
-/
theorem toJordanDecomposition_spec (s : SignedMeasure α) :
- ∃ (i : Set α)(hi₁ : MeasurableSet i)(hi₂ : 0 ≤[i] s)(hi₃ : s ≤[iᶜ] 0),
+ ∃ (i : Set α) (hi₁ : MeasurableSet i) (hi₂ : 0 ≤[i] s) (hi₃ : s ≤[iᶜ] 0),
s.toJordanDecomposition.posPart = s.toMeasureOfZeroLE i hi₁ hi₂ ∧
s.toJordanDecomposition.negPart = s.toMeasureOfLEZero (iᶜ) hi₁.compl hi₃ :=
by
@@ -306,9 +306,9 @@ theorem subset_positive_null_set (hu : MeasurableSet u) (hv : MeasurableSet v)
theorem subset_negative_null_set (hu : MeasurableSet u) (hv : MeasurableSet v)
(hw : MeasurableSet w) (hsu : s ≤[u] 0) (hw₁ : s w = 0) (hw₂ : w ⊆ u) (hwt : v ⊆ w) : s v = 0 :=
by
- rw [← s.neg_le_neg_iff _ hu, neg_zero] at hsu
+ rw [← s.neg_le_neg_iff _ hu, neg_zero] at hsu
have := subset_positive_null_set hu hv hw hsu
- simp only [Pi.neg_apply, neg_eq_zero, coe_neg] at this
+ simp only [Pi.neg_apply, neg_eq_zero, coe_neg] at this
exact this hw₁ hw₂ hwt
#align measure_theory.signed_measure.subset_negative_null_set MeasureTheory.SignedMeasure.subset_negative_null_set
@@ -317,15 +317,19 @@ between the two sets. -/
theorem of_diff_eq_zero_of_symmDiff_eq_zero_positive (hu : MeasurableSet u) (hv : MeasurableSet v)
(hsu : 0 ≤[u] s) (hsv : 0 ≤[v] s) (hs : s (u ∆ v) = 0) : s (u \ v) = 0 ∧ s (v \ u) = 0 :=
by
- rw [restrict_le_restrict_iff] at hsu hsv
+ rw [restrict_le_restrict_iff] at hsu hsv
have a := hsu (hu.diff hv) (u.diff_subset v)
have b := hsv (hv.diff hu) (v.diff_subset u)
erw [of_union (Set.disjoint_of_subset_left (u.diff_subset v) disjoint_sdiff_self_right)
(hu.diff hv) (hv.diff hu)] at
- hs
- rw [zero_apply] at a b
+ hs
+ rw [zero_apply] at a b
constructor
- all_goals first |linarith|infer_instance|assumption
+ all_goals
+ first
+ | linarith
+ | infer_instance
+ | assumption
#align measure_theory.signed_measure.of_diff_eq_zero_of_symm_diff_eq_zero_positive MeasureTheory.SignedMeasure.of_diff_eq_zero_of_symmDiff_eq_zero_positive
/-- If the symmetric difference of two negative sets is a null-set, then so are the differences
@@ -333,10 +337,10 @@ between the two sets. -/
theorem of_diff_eq_zero_of_symmDiff_eq_zero_negative (hu : MeasurableSet u) (hv : MeasurableSet v)
(hsu : s ≤[u] 0) (hsv : s ≤[v] 0) (hs : s (u ∆ v) = 0) : s (u \ v) = 0 ∧ s (v \ u) = 0 :=
by
- rw [← s.neg_le_neg_iff _ hu, neg_zero] at hsu
- rw [← s.neg_le_neg_iff _ hv, neg_zero] at hsv
+ rw [← s.neg_le_neg_iff _ hu, neg_zero] at hsu
+ rw [← s.neg_le_neg_iff _ hv, neg_zero] at hsv
have := of_diff_eq_zero_of_symm_diff_eq_zero_positive hu hv hsu hsv
- simp only [Pi.neg_apply, neg_eq_zero, coe_neg] at this
+ simp only [Pi.neg_apply, neg_eq_zero, coe_neg] at this
exact this hs
#align measure_theory.signed_measure.of_diff_eq_zero_of_symm_diff_eq_zero_negative MeasureTheory.SignedMeasure.of_diff_eq_zero_of_symmDiff_eq_zero_negative
@@ -362,10 +366,10 @@ theorem of_inter_eq_of_symmDiff_eq_zero_negative (hu : MeasurableSet u) (hv : Me
(hw : MeasurableSet w) (hsu : s ≤[u] 0) (hsv : s ≤[v] 0) (hs : s (u ∆ v) = 0) :
s (w ∩ u) = s (w ∩ v) :=
by
- rw [← s.neg_le_neg_iff _ hu, neg_zero] at hsu
- rw [← s.neg_le_neg_iff _ hv, neg_zero] at hsv
+ rw [← s.neg_le_neg_iff _ hu, neg_zero] at hsu
+ rw [← s.neg_le_neg_iff _ hv, neg_zero] at hsv
have := of_inter_eq_of_symm_diff_eq_zero_positive hu hv hw hsu hsv
- simp only [Pi.neg_apply, neg_inj, neg_eq_zero, coe_neg] at this
+ simp only [Pi.neg_apply, neg_inj, neg_eq_zero, coe_neg] at this
exact this hs
#align measure_theory.signed_measure.of_inter_eq_of_symm_diff_eq_zero_negative MeasureTheory.SignedMeasure.of_inter_eq_of_symmDiff_eq_zero_negative
@@ -401,7 +405,7 @@ theorem toSignedMeasure_injective : Injective <| @JordanDecomposition.toSignedMe
-- obtain the two Hahn decompositions from the Jordan decompositions
obtain ⟨S, hS₁, hS₂, hS₃, hS₄, hS₅⟩ := j₁.exists_compl_positive_negative
obtain ⟨T, hT₁, hT₂, hT₃, hT₄, hT₅⟩ := j₂.exists_compl_positive_negative
- rw [← hj] at hT₂ hT₃
+ rw [← hj] at hT₂ hT₃
-- the symmetric differences of the two Hahn decompositions have measure zero
obtain ⟨hST₁, -⟩ :=
of_symm_diff_compl_positive_negative hS₁.compl hT₁.compl ⟨hS₃, (compl_compl S).symm ▸ hS₂⟩
@@ -557,7 +561,7 @@ theorem totalVariation_neg (s : SignedMeasure α) : (-s).totalVariation = s.tota
theorem null_of_totalVariation_zero (s : SignedMeasure α) {i : Set α}
(hs : s.totalVariation i = 0) : s i = 0 :=
by
- rw [total_variation, measure.coe_add, Pi.add_apply, add_eq_zero_iff] at hs
+ rw [total_variation, measure.coe_add, Pi.add_apply, add_eq_zero_iff] at hs
rw [← to_signed_measure_to_jordan_decomposition s, to_signed_measure, vector_measure.coe_sub,
Pi.sub_apply, measure.to_signed_measure_apply, measure.to_signed_measure_apply]
by_cases hi : MeasurableSet i
@@ -573,11 +577,11 @@ theorem absolutelyContinuous_ennreal_iff (s : SignedMeasure α) (μ : VectorMeas
obtain ⟨i, hi₁, hi₂, hi₃, hpos, hneg⟩ := s.to_jordan_decomposition_spec
rw [total_variation, measure.add_apply, hpos, hneg, to_measure_of_zero_le_apply _ _ _ hS₁,
to_measure_of_le_zero_apply _ _ _ hS₁]
- rw [← vector_measure.absolutely_continuous.ennreal_to_measure] at h
+ rw [← vector_measure.absolutely_continuous.ennreal_to_measure] at h
simp [h (measure_mono_null (i.inter_subset_right S) hS₂),
h (measure_mono_null (iᶜ.inter_subset_right S) hS₂)]
· refine' vector_measure.absolutely_continuous.mk fun S hS₁ hS₂ => _
- rw [← vector_measure.ennreal_to_measure_apply hS₁] at hS₂
+ rw [← vector_measure.ennreal_to_measure_apply hS₁] at hS₂
exact null_of_total_variation_zero s (h hS₂)
#align measure_theory.signed_measure.absolutely_continuous_ennreal_iff MeasureTheory.SignedMeasure.absolutelyContinuous_ennreal_iff
@@ -591,8 +595,8 @@ theorem totalVariation_absolutelyContinuous_iff (s : SignedMeasure α) (μ : Mea
all_goals
refine' measure.absolutely_continuous.mk fun S hS₁ hS₂ => _
have := h hS₂
- rw [total_variation, measure.add_apply, add_eq_zero_iff] at this
- exacts[this.1, this.2]
+ rw [total_variation, measure.add_apply, add_eq_zero_iff] at this
+ exacts [this.1, this.2]
· refine' measure.absolutely_continuous.mk fun S hS₁ hS₂ => _
rw [total_variation, measure.add_apply, h.1 hS₂, h.2 hS₂, add_zero]
#align measure_theory.signed_measure.total_variation_absolutely_continuous_iff MeasureTheory.SignedMeasure.totalVariation_absolutelyContinuous_iff
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kexing Ying
! This file was ported from Lean 3 source module measure_theory.decomposition.jordan
-! leanprover-community/mathlib commit 70a4f2197832bceab57d7f41379b2592d1110570
+! leanprover-community/mathlib commit 61b5e2755ccb464b68d05a9acf891ae04992d09d
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.MeasureTheory.Measure.MutuallySingular
/-!
# Jordan decomposition
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file proves the existence and uniqueness of the Jordan decomposition for signed measures.
The Jordan decomposition theorem states that, given a signed measure `s`, there exists a
unique pair of mutually singular measures `μ` and `ν`, such that `s = μ - ν`.
@@ -53,6 +56,7 @@ variable {α β : Type _} [MeasurableSpace α]
namespace MeasureTheory
+#print MeasureTheory.JordanDecomposition /-
/-- A Jordan decomposition of a measurable space is a pair of mutually singular,
finite measures. -/
@[ext]
@@ -62,6 +66,7 @@ structure JordanDecomposition (α : Type _) [MeasurableSpace α] where
[negPart_finite : FiniteMeasure neg_part]
MutuallySingular : pos_part ⟂ₘ neg_part
#align measure_theory.jordan_decomposition MeasureTheory.JordanDecomposition
+-/
attribute [instance] jordan_decomposition.pos_part_finite
@@ -73,7 +78,7 @@ open Measure VectorMeasure
variable (j : JordanDecomposition α)
-instance : Zero (JordanDecomposition α) where zero := ⟨0, 0, MutuallySingular.zeroRight⟩
+instance : Zero (JordanDecomposition α) where zero := ⟨0, 0, MutuallySingular.zero_right⟩
instance : Inhabited (JordanDecomposition α) where default := 0
@@ -87,19 +92,25 @@ instance : SMul ℝ≥0 (JordanDecomposition α)
⟨r • j.posPart, r • j.negPart,
MutuallySingular.smul _ (MutuallySingular.smul _ j.MutuallySingular.symm).symm⟩
-instance hasSmulReal : SMul ℝ (JordanDecomposition α)
+#print MeasureTheory.JordanDecomposition.instSMulReal /-
+instance instSMulReal : SMul ℝ (JordanDecomposition α)
where smul r j := if hr : 0 ≤ r then r.toNNReal • j else -((-r).toNNReal • j)
-#align measure_theory.jordan_decomposition.has_smul_real MeasureTheory.JordanDecomposition.hasSmulReal
+#align measure_theory.jordan_decomposition.has_smul_real MeasureTheory.JordanDecomposition.instSMulReal
+-/
+#print MeasureTheory.JordanDecomposition.zero_posPart /-
@[simp]
theorem zero_posPart : (0 : JordanDecomposition α).posPart = 0 :=
rfl
#align measure_theory.jordan_decomposition.zero_pos_part MeasureTheory.JordanDecomposition.zero_posPart
+-/
+#print MeasureTheory.JordanDecomposition.zero_negPart /-
@[simp]
theorem zero_negPart : (0 : JordanDecomposition α).negPart = 0 :=
rfl
#align measure_theory.jordan_decomposition.zero_neg_part MeasureTheory.JordanDecomposition.zero_negPart
+-/
@[simp]
theorem neg_posPart : (-j).posPart = j.negPart :=
@@ -155,16 +166,20 @@ theorem real_smul_negPart_neg (r : ℝ) (hr : r < 0) : (r • j).negPart = (-r).
by rw [real_smul_def, ← smul_pos_part, dif_neg (not_le.2 hr), neg_neg_part]
#align measure_theory.jordan_decomposition.real_smul_neg_part_neg MeasureTheory.JordanDecomposition.real_smul_negPart_neg
+#print MeasureTheory.JordanDecomposition.toSignedMeasure /-
/-- The signed measure associated with a Jordan decomposition. -/
def toSignedMeasure : SignedMeasure α :=
j.posPart.toSignedMeasure - j.negPart.toSignedMeasure
#align measure_theory.jordan_decomposition.to_signed_measure MeasureTheory.JordanDecomposition.toSignedMeasure
+-/
+#print MeasureTheory.JordanDecomposition.toSignedMeasure_zero /-
theorem toSignedMeasure_zero : (0 : JordanDecomposition α).toSignedMeasure = 0 :=
by
ext1 i hi
erw [to_signed_measure, to_signed_measure_sub_apply hi, sub_self, zero_apply]
#align measure_theory.jordan_decomposition.to_signed_measure_zero MeasureTheory.JordanDecomposition.toSignedMeasure_zero
+-/
theorem toSignedMeasure_neg : (-j).toSignedMeasure = -j.toSignedMeasure :=
by
@@ -212,6 +227,7 @@ open Classical JordanDecomposition Measure Set VectorMeasure
variable {s : SignedMeasure α} {μ ν : Measure α} [FiniteMeasure μ] [FiniteMeasure ν]
+#print MeasureTheory.SignedMeasure.toJordanDecomposition /-
/-- Given a signed measure `s`, `s.to_jordan_decomposition` is the Jordan decomposition `j`,
such that `s = j.to_signed_measure`. This property is known as the Jordan decomposition
theorem, and is shown by
@@ -219,8 +235,8 @@ theorem, and is shown by
def toJordanDecomposition (s : SignedMeasure α) : JordanDecomposition α :=
let i := choose s.exists_compl_positive_negative
let hi := choose_spec s.exists_compl_positive_negative
- { posPart := s.toMeasureOfZeroLe i hi.1 hi.2.1
- negPart := s.toMeasureOfLeZero (iᶜ) hi.1.compl hi.2.2
+ { posPart := s.toMeasureOfZeroLE i hi.1 hi.2.1
+ negPart := s.toMeasureOfLEZero (iᶜ) hi.1.compl hi.2.2
posPart_finite := inferInstance
negPart_finite := inferInstance
MutuallySingular := by
@@ -228,17 +244,19 @@ def toJordanDecomposition (s : SignedMeasure α) : JordanDecomposition α :=
· rw [to_measure_of_zero_le_apply _ _ hi.1 hi.1.compl]; simp
· rw [to_measure_of_le_zero_apply _ _ hi.1.compl hi.1.compl.compl]; simp }
#align measure_theory.signed_measure.to_jordan_decomposition MeasureTheory.SignedMeasure.toJordanDecomposition
+-/
theorem toJordanDecomposition_spec (s : SignedMeasure α) :
∃ (i : Set α)(hi₁ : MeasurableSet i)(hi₂ : 0 ≤[i] s)(hi₃ : s ≤[iᶜ] 0),
- s.toJordanDecomposition.posPart = s.toMeasureOfZeroLe i hi₁ hi₂ ∧
- s.toJordanDecomposition.negPart = s.toMeasureOfLeZero (iᶜ) hi₁.compl hi₃ :=
+ s.toJordanDecomposition.posPart = s.toMeasureOfZeroLE i hi₁ hi₂ ∧
+ s.toJordanDecomposition.negPart = s.toMeasureOfLEZero (iᶜ) hi₁.compl hi₃ :=
by
set i := some s.exists_compl_positive_negative
obtain ⟨hi₁, hi₂, hi₃⟩ := some_spec s.exists_compl_positive_negative
exact ⟨i, hi₁, hi₂, hi₃, rfl, rfl⟩
#align measure_theory.signed_measure.to_jordan_decomposition_spec MeasureTheory.SignedMeasure.toJordanDecomposition_spec
+#print MeasureTheory.SignedMeasure.toSignedMeasure_toJordanDecomposition /-
/-- **The Jordan decomposition theorem**: Given a signed measure `s`, there exists a pair of
mutually singular measures `μ` and `ν` such that `s = μ - ν`. In this case, the measures `μ`
and `ν` are given by `s.to_jordan_decomposition.pos_part` and
@@ -262,6 +280,7 @@ theorem toSignedMeasure_toJordanDecomposition (s : SignedMeasure α) :
· infer_instance
· exact (disjoint_compl_right.inf_left _).inf_right _
#align measure_theory.signed_measure.to_signed_measure_to_jordan_decomposition MeasureTheory.SignedMeasure.toSignedMeasure_toJordanDecomposition
+-/
section
@@ -370,6 +389,7 @@ private theorem eq_of_pos_part_eq_pos_part {j₁ j₂ : JordanDecomposition α}
by exact sub_right_inj.mp this
convert hj'
+#print MeasureTheory.JordanDecomposition.toSignedMeasure_injective /-
/-- The Jordan decomposition of a signed measure is unique. -/
theorem toSignedMeasure_injective : Injective <| @JordanDecomposition.toSignedMeasure α _ :=
by
@@ -429,12 +449,15 @@ theorem toSignedMeasure_injective : Injective <| @JordanDecomposition.toSignedMe
exact of_inter_eq_of_symm_diff_eq_zero_positive hS₁.compl hT₁.compl hi hS₃ hT₃ hST₁
all_goals infer_instance
#align measure_theory.jordan_decomposition.to_signed_measure_injective MeasureTheory.JordanDecomposition.toSignedMeasure_injective
+-/
+#print MeasureTheory.JordanDecomposition.toJordanDecomposition_toSignedMeasure /-
@[simp]
theorem toJordanDecomposition_toSignedMeasure (j : JordanDecomposition α) :
j.toSignedMeasure.toJordanDecomposition = j :=
(@toSignedMeasure_injective _ _ j j.toSignedMeasure.toJordanDecomposition (by simp)).symm
#align measure_theory.jordan_decomposition.to_jordan_decomposition_to_signed_measure MeasureTheory.JordanDecomposition.toJordanDecomposition_toSignedMeasure
+-/
end JordanDecomposition
@@ -442,6 +465,7 @@ namespace SignedMeasure
open JordanDecomposition
+#print MeasureTheory.SignedMeasure.toJordanDecompositionEquiv /-
/-- `measure_theory.signed_measure.to_jordan_decomposition` and
`measure_theory.jordan_decomposition.to_signed_measure` form a `equiv`. -/
@[simps apply symm_apply]
@@ -453,12 +477,15 @@ def toJordanDecompositionEquiv (α : Type _) [MeasurableSpace α] :
left_inv := toSignedMeasure_toJordanDecomposition
right_inv := toJordanDecomposition_toSignedMeasure
#align measure_theory.signed_measure.to_jordan_decomposition_equiv MeasureTheory.SignedMeasure.toJordanDecompositionEquiv
+-/
+#print MeasureTheory.SignedMeasure.toJordanDecomposition_zero /-
theorem toJordanDecomposition_zero : (0 : SignedMeasure α).toJordanDecomposition = 0 :=
by
apply to_signed_measure_injective
simp [to_signed_measure_zero]
#align measure_theory.signed_measure.to_jordan_decomposition_zero MeasureTheory.SignedMeasure.toJordanDecomposition_zero
+-/
theorem toJordanDecomposition_neg (s : SignedMeasure α) :
(-s).toJordanDecomposition = -s.toJordanDecomposition :=
@@ -467,12 +494,14 @@ theorem toJordanDecomposition_neg (s : SignedMeasure α) :
simp [to_signed_measure_neg]
#align measure_theory.signed_measure.to_jordan_decomposition_neg MeasureTheory.SignedMeasure.toJordanDecomposition_neg
+#print MeasureTheory.SignedMeasure.toJordanDecomposition_smul /-
theorem toJordanDecomposition_smul (s : SignedMeasure α) (r : ℝ≥0) :
(r • s).toJordanDecomposition = r • s.toJordanDecomposition :=
by
apply to_signed_measure_injective
simp [to_signed_measure_smul]
#align measure_theory.signed_measure.to_jordan_decomposition_smul MeasureTheory.SignedMeasure.toJordanDecomposition_smul
+-/
private theorem to_jordan_decomposition_smul_real_nonneg (s : SignedMeasure α) (r : ℝ)
(hr : 0 ≤ r) : (r • s).toJordanDecomposition = r • s.toJordanDecomposition :=
@@ -481,6 +510,7 @@ private theorem to_jordan_decomposition_smul_real_nonneg (s : SignedMeasure α)
rw [jordan_decomposition.coe_smul, ← to_jordan_decomposition_smul]
rfl
+#print MeasureTheory.SignedMeasure.toJordanDecomposition_smul_real /-
theorem toJordanDecomposition_smul_real (s : SignedMeasure α) (r : ℝ) :
(r • s).toJordanDecomposition = r • s.toJordanDecomposition :=
by
@@ -496,24 +526,33 @@ theorem toJordanDecomposition_smul_real (s : SignedMeasure α) (r : ℝ) :
to_jordan_decomposition_smul_real_nonneg, ← smul_pos_part, real_smul_nonneg]
all_goals exact Left.nonneg_neg_iff.2 (le_of_lt (not_le.1 hr))
#align measure_theory.signed_measure.to_jordan_decomposition_smul_real MeasureTheory.SignedMeasure.toJordanDecomposition_smul_real
+-/
+#print MeasureTheory.SignedMeasure.toJordanDecomposition_eq /-
theorem toJordanDecomposition_eq {s : SignedMeasure α} {j : JordanDecomposition α}
(h : s = j.toSignedMeasure) : s.toJordanDecomposition = j := by
rw [h, to_jordan_decomposition_to_signed_measure]
#align measure_theory.signed_measure.to_jordan_decomposition_eq MeasureTheory.SignedMeasure.toJordanDecomposition_eq
+-/
+#print MeasureTheory.SignedMeasure.totalVariation /-
/-- The total variation of a signed measure. -/
def totalVariation (s : SignedMeasure α) : Measure α :=
s.toJordanDecomposition.posPart + s.toJordanDecomposition.negPart
#align measure_theory.signed_measure.total_variation MeasureTheory.SignedMeasure.totalVariation
+-/
+#print MeasureTheory.SignedMeasure.totalVariation_zero /-
theorem totalVariation_zero : (0 : SignedMeasure α).totalVariation = 0 := by
simp [total_variation, to_jordan_decomposition_zero]
#align measure_theory.signed_measure.total_variation_zero MeasureTheory.SignedMeasure.totalVariation_zero
+-/
+#print MeasureTheory.SignedMeasure.totalVariation_neg /-
theorem totalVariation_neg (s : SignedMeasure α) : (-s).totalVariation = s.totalVariation := by
simp [total_variation, to_jordan_decomposition_neg, add_comm]
#align measure_theory.signed_measure.total_variation_neg MeasureTheory.SignedMeasure.totalVariation_neg
+-/
theorem null_of_totalVariation_zero (s : SignedMeasure α) {i : Set α}
(hs : s.totalVariation i = 0) : s i = 0 :=
@@ -526,7 +565,7 @@ theorem null_of_totalVariation_zero (s : SignedMeasure α) {i : Set α}
· simp [if_neg hi]
#align measure_theory.signed_measure.null_of_total_variation_zero MeasureTheory.SignedMeasure.null_of_totalVariation_zero
-theorem absolutelyContinuous_eNNReal_iff (s : SignedMeasure α) (μ : VectorMeasure α ℝ≥0∞) :
+theorem absolutelyContinuous_ennreal_iff (s : SignedMeasure α) (μ : VectorMeasure α ℝ≥0∞) :
s ≪ᵥ μ ↔ s.totalVariation ≪ μ.ennrealToMeasure :=
by
constructor <;> intro h
@@ -540,8 +579,9 @@ theorem absolutelyContinuous_eNNReal_iff (s : SignedMeasure α) (μ : VectorMeas
· refine' vector_measure.absolutely_continuous.mk fun S hS₁ hS₂ => _
rw [← vector_measure.ennreal_to_measure_apply hS₁] at hS₂
exact null_of_total_variation_zero s (h hS₂)
-#align measure_theory.signed_measure.absolutely_continuous_ennreal_iff MeasureTheory.SignedMeasure.absolutelyContinuous_eNNReal_iff
+#align measure_theory.signed_measure.absolutely_continuous_ennreal_iff MeasureTheory.SignedMeasure.absolutelyContinuous_ennreal_iff
+#print MeasureTheory.SignedMeasure.totalVariation_absolutelyContinuous_iff /-
theorem totalVariation_absolutelyContinuous_iff (s : SignedMeasure α) (μ : Measure α) :
s.totalVariation ≪ μ ↔
s.toJordanDecomposition.posPart ≪ μ ∧ s.toJordanDecomposition.negPart ≪ μ :=
@@ -556,7 +596,9 @@ theorem totalVariation_absolutelyContinuous_iff (s : SignedMeasure α) (μ : Mea
· refine' measure.absolutely_continuous.mk fun S hS₁ hS₂ => _
rw [total_variation, measure.add_apply, h.1 hS₂, h.2 hS₂, add_zero]
#align measure_theory.signed_measure.total_variation_absolutely_continuous_iff MeasureTheory.SignedMeasure.totalVariation_absolutelyContinuous_iff
+-/
+#print MeasureTheory.SignedMeasure.mutuallySingular_iff /-
-- TODO: Generalize to vector measures once total variation on vector measures is defined
theorem mutuallySingular_iff (s t : SignedMeasure α) :
s ⟂ᵥ t ↔ s.totalVariation ⟂ₘ t.totalVariation :=
@@ -578,8 +620,9 @@ theorem mutuallySingular_iff (s t : SignedMeasure α) :
⟨u, hmeas, fun t htu => null_of_total_variation_zero _ (measure_mono_null htu hu₁),
fun t htv => null_of_total_variation_zero _ (measure_mono_null htv hu₂)⟩
#align measure_theory.signed_measure.mutually_singular_iff MeasureTheory.SignedMeasure.mutuallySingular_iff
+-/
-theorem mutuallySingular_eNNReal_iff (s : SignedMeasure α) (μ : VectorMeasure α ℝ≥0∞) :
+theorem mutuallySingular_ennreal_iff (s : SignedMeasure α) (μ : VectorMeasure α ℝ≥0∞) :
s ⟂ᵥ μ ↔ s.totalVariation ⟂ₘ μ.ennrealToMeasure :=
by
constructor
@@ -598,13 +641,15 @@ theorem mutuallySingular_eNNReal_iff (s : SignedMeasure α) (μ : VectorMeasure
_
rw [← vector_measure.ennreal_to_measure_apply hmt]
exact measure_mono_null htv hu₂
-#align measure_theory.signed_measure.mutually_singular_ennreal_iff MeasureTheory.SignedMeasure.mutuallySingular_eNNReal_iff
+#align measure_theory.signed_measure.mutually_singular_ennreal_iff MeasureTheory.SignedMeasure.mutuallySingular_ennreal_iff
+#print MeasureTheory.SignedMeasure.totalVariation_mutuallySingular_iff /-
theorem totalVariation_mutuallySingular_iff (s : SignedMeasure α) (μ : Measure α) :
s.totalVariation ⟂ₘ μ ↔
s.toJordanDecomposition.posPart ⟂ₘ μ ∧ s.toJordanDecomposition.negPart ⟂ₘ μ :=
Measure.MutuallySingular.add_left_iff
#align measure_theory.signed_measure.total_variation_mutually_singular_iff MeasureTheory.SignedMeasure.totalVariation_mutuallySingular_iff
+-/
end SignedMeasure
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -47,7 +47,7 @@ Jordan decomposition theorem
noncomputable section
-open Classical MeasureTheory ENNReal NNReal
+open scoped Classical MeasureTheory ENNReal NNReal
variable {α β : Type _} [MeasurableSpace α]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -225,10 +225,8 @@ def toJordanDecomposition (s : SignedMeasure α) : JordanDecomposition α :=
negPart_finite := inferInstance
MutuallySingular := by
refine' ⟨iᶜ, hi.1.compl, _, _⟩
- · rw [to_measure_of_zero_le_apply _ _ hi.1 hi.1.compl]
- simp
- · rw [to_measure_of_le_zero_apply _ _ hi.1.compl hi.1.compl.compl]
- simp }
+ · rw [to_measure_of_zero_le_apply _ _ hi.1 hi.1.compl]; simp
+ · rw [to_measure_of_le_zero_apply _ _ hi.1.compl hi.1.compl.compl]; simp }
#align measure_theory.signed_measure.to_jordan_decomposition MeasureTheory.SignedMeasure.toJordanDecomposition
theorem toJordanDecomposition_spec (s : SignedMeasure α) :
@@ -524,8 +522,7 @@ theorem null_of_totalVariation_zero (s : SignedMeasure α) {i : Set α}
rw [← to_signed_measure_to_jordan_decomposition s, to_signed_measure, vector_measure.coe_sub,
Pi.sub_apply, measure.to_signed_measure_apply, measure.to_signed_measure_apply]
by_cases hi : MeasurableSet i
- · rw [if_pos hi, if_pos hi]
- simp [hs.1, hs.2]
+ · rw [if_pos hi, if_pos hi]; simp [hs.1, hs.2]
· simp [if_neg hi]
#align measure_theory.signed_measure.null_of_total_variation_zero MeasureTheory.SignedMeasure.null_of_totalVariation_zero
@@ -550,7 +547,7 @@ theorem totalVariation_absolutelyContinuous_iff (s : SignedMeasure α) (μ : Mea
s.toJordanDecomposition.posPart ≪ μ ∧ s.toJordanDecomposition.negPart ≪ μ :=
by
constructor <;> intro h
- · constructor
+ · constructor;
all_goals
refine' measure.absolutely_continuous.mk fun S hS₁ hS₂ => _
have := h hS₂
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -371,7 +371,6 @@ private theorem eq_of_pos_part_eq_pos_part {j₁ j₂ : JordanDecomposition α}
j₁.pos_part.to_signed_measure - j₂.neg_part.to_signed_measure
by exact sub_right_inj.mp this
convert hj'
-#align measure_theory.jordan_decomposition.eq_of_pos_part_eq_pos_part measure_theory.jordan_decomposition.eq_of_pos_part_eq_pos_part
/-- The Jordan decomposition of a signed measure is unique. -/
theorem toSignedMeasure_injective : Injective <| @JordanDecomposition.toSignedMeasure α _ :=
@@ -483,7 +482,6 @@ private theorem to_jordan_decomposition_smul_real_nonneg (s : SignedMeasure α)
lift r to ℝ≥0 using hr
rw [jordan_decomposition.coe_smul, ← to_jordan_decomposition_smul]
rfl
-#align measure_theory.signed_measure.to_jordan_decomposition_smul_real_nonneg measure_theory.signed_measure.to_jordan_decomposition_smul_real_nonneg
theorem toJordanDecomposition_smul_real (s : SignedMeasure α) (r : ℝ) :
(r • s).toJordanDecomposition = r • s.toJordanDecomposition :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -58,8 +58,8 @@ finite measures. -/
@[ext]
structure JordanDecomposition (α : Type _) [MeasurableSpace α] where
(posPart negPart : Measure α)
- [posPart_finite : IsFiniteMeasure pos_part]
- [negPart_finite : IsFiniteMeasure neg_part]
+ [posPart_finite : FiniteMeasure pos_part]
+ [negPart_finite : FiniteMeasure neg_part]
MutuallySingular : pos_part ⟂ₘ neg_part
#align measure_theory.jordan_decomposition MeasureTheory.JordanDecomposition
@@ -210,7 +210,7 @@ namespace SignedMeasure
open Classical JordanDecomposition Measure Set VectorMeasure
-variable {s : SignedMeasure α} {μ ν : Measure α} [IsFiniteMeasure μ] [IsFiniteMeasure ν]
+variable {s : SignedMeasure α} {μ ν : Measure α} [FiniteMeasure μ] [FiniteMeasure ν]
/-- Given a signed measure `s`, `s.to_jordan_decomposition` is the Jordan decomposition `j`,
such that `s = j.to_signed_measure`. This property is known as the Jordan decomposition
mathlib commit https://github.com/leanprover-community/mathlib/commit/92c69b77c5a7dc0f7eeddb552508633305157caa
@@ -58,8 +58,8 @@ finite measures. -/
@[ext]
structure JordanDecomposition (α : Type _) [MeasurableSpace α] where
(posPart negPart : Measure α)
- [posPartFinite : IsFiniteMeasure pos_part]
- [negPartFinite : IsFiniteMeasure neg_part]
+ [posPart_finite : IsFiniteMeasure pos_part]
+ [negPart_finite : IsFiniteMeasure neg_part]
MutuallySingular : pos_part ⟂ₘ neg_part
#align measure_theory.jordan_decomposition MeasureTheory.JordanDecomposition
@@ -221,8 +221,8 @@ def toJordanDecomposition (s : SignedMeasure α) : JordanDecomposition α :=
let hi := choose_spec s.exists_compl_positive_negative
{ posPart := s.toMeasureOfZeroLe i hi.1 hi.2.1
negPart := s.toMeasureOfLeZero (iᶜ) hi.1.compl hi.2.2
- posPartFinite := inferInstance
- negPartFinite := inferInstance
+ posPart_finite := inferInstance
+ negPart_finite := inferInstance
MutuallySingular := by
refine' ⟨iᶜ, hi.1.compl, _, _⟩
· rw [to_measure_of_zero_le_apply _ _ hi.1 hi.1.compl]
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -47,7 +47,7 @@ Jordan decomposition theorem
noncomputable section
-open Classical MeasureTheory Ennreal NNReal
+open Classical MeasureTheory ENNReal NNReal
variable {α β : Type _} [MeasurableSpace α]
@@ -179,7 +179,7 @@ theorem toSignedMeasure_smul (r : ℝ≥0) : (r • j).toSignedMeasure = r • j
ext1 i hi
rw [vector_measure.smul_apply, to_signed_measure, to_signed_measure,
to_signed_measure_sub_apply hi, to_signed_measure_sub_apply hi, smul_sub, smul_pos_part,
- smul_neg_part, ← Ennreal.toReal_smul, ← Ennreal.toReal_smul]
+ smul_neg_part, ← ENNReal.toReal_smul, ← ENNReal.toReal_smul]
rfl
#align measure_theory.jordan_decomposition.to_signed_measure_smul MeasureTheory.JordanDecomposition.toSignedMeasure_smul
@@ -194,14 +194,14 @@ theorem exists_compl_positive_negative :
refine' ⟨S, hS₁, _, _, hS₂, hS₃⟩
· refine' restrict_le_restrict_of_subset_le _ _ fun A hA hA₁ => _
rw [to_signed_measure, to_signed_measure_sub_apply hA,
- show j.pos_part A = 0 from nonpos_iff_eq_zero.1 (hS₂ ▸ measure_mono hA₁), Ennreal.zero_toReal,
+ show j.pos_part A = 0 from nonpos_iff_eq_zero.1 (hS₂ ▸ measure_mono hA₁), ENNReal.zero_toReal,
zero_sub, neg_le, zero_apply, neg_zero]
- exact Ennreal.toReal_nonneg
+ exact ENNReal.toReal_nonneg
· refine' restrict_le_restrict_of_subset_le _ _ fun A hA hA₁ => _
rw [to_signed_measure, to_signed_measure_sub_apply hA,
- show j.neg_part A = 0 from nonpos_iff_eq_zero.1 (hS₃ ▸ measure_mono hA₁), Ennreal.zero_toReal,
+ show j.neg_part A = 0 from nonpos_iff_eq_zero.1 (hS₃ ▸ measure_mono hA₁), ENNReal.zero_toReal,
sub_zero]
- exact Ennreal.toReal_nonneg
+ exact ENNReal.toReal_nonneg
#align measure_theory.jordan_decomposition.exists_compl_positive_negative MeasureTheory.JordanDecomposition.exists_compl_positive_negative
end JordanDecomposition
@@ -258,7 +258,7 @@ theorem toSignedMeasure_toJordanDecomposition (s : SignedMeasure α) :
ext (k hk)
rw [to_signed_measure_sub_apply hk, to_measure_of_zero_le_apply _ hi₂ hi₁ hk,
to_measure_of_le_zero_apply _ hi₃ hi₁.compl hk]
- simp only [Ennreal.coe_toReal, Subtype.coe_mk, Ennreal.some_eq_coe, sub_neg_eq_add]
+ simp only [ENNReal.coe_toReal, Subtype.coe_mk, ENNReal.some_eq_coe, sub_neg_eq_add]
rw [← of_union _ (MeasurableSet.inter hi₁ hk) (MeasurableSet.inter hi₁.compl hk),
Set.inter_comm i, Set.inter_comm (iᶜ), Set.inter_union_compl _ _]
· infer_instance
@@ -399,7 +399,7 @@ theorem toSignedMeasure_injective : Injective <| @JordanDecomposition.toSignedMe
rw [to_signed_measure, to_signed_measure_sub_apply (hi.inter hS₁.compl),
show j₁.neg_part (i ∩ Sᶜ) = 0 from
nonpos_iff_eq_zero.1 (hS₅ ▸ measure_mono (Set.inter_subset_right _ _)),
- Ennreal.zero_toReal, sub_zero]
+ ENNReal.zero_toReal, sub_zero]
conv_lhs => rw [← Set.inter_union_compl i S]
rw [measure_union,
show j₁.pos_part (i ∩ S) = 0 from
@@ -415,7 +415,7 @@ theorem toSignedMeasure_injective : Injective <| @JordanDecomposition.toSignedMe
rw [to_signed_measure, to_signed_measure_sub_apply (hi.inter hT₁.compl),
show j₂.neg_part (i ∩ Tᶜ) = 0 from
nonpos_iff_eq_zero.1 (hT₅ ▸ measure_mono (Set.inter_subset_right _ _)),
- Ennreal.zero_toReal, sub_zero]
+ ENNReal.zero_toReal, sub_zero]
conv_lhs => rw [← Set.inter_union_compl i T]
rw [measure_union,
show j₂.pos_part (i ∩ T) = 0 from
@@ -428,7 +428,7 @@ theorem toSignedMeasure_injective : Injective <| @JordanDecomposition.toSignedMe
· exact hi.inter hT₁.compl
-- since the two signed measures associated with the Jordan decompositions are the same,
-- and the symmetric difference of the Hahn decompositions have measure zero, the result follows
- rw [← Ennreal.toReal_eq_toReal (measure_ne_top _ _) (measure_ne_top _ _), hμ₁, hμ₂, ← hj]
+ rw [← ENNReal.toReal_eq_toReal (measure_ne_top _ _) (measure_ne_top _ _), hμ₁, hμ₂, ← hj]
exact of_inter_eq_of_symm_diff_eq_zero_positive hS₁.compl hT₁.compl hi hS₃ hT₃ hST₁
all_goals infer_instance
#align measure_theory.jordan_decomposition.to_signed_measure_injective MeasureTheory.JordanDecomposition.toSignedMeasure_injective
@@ -531,7 +531,7 @@ theorem null_of_totalVariation_zero (s : SignedMeasure α) {i : Set α}
· simp [if_neg hi]
#align measure_theory.signed_measure.null_of_total_variation_zero MeasureTheory.SignedMeasure.null_of_totalVariation_zero
-theorem absolutelyContinuous_ennreal_iff (s : SignedMeasure α) (μ : VectorMeasure α ℝ≥0∞) :
+theorem absolutelyContinuous_eNNReal_iff (s : SignedMeasure α) (μ : VectorMeasure α ℝ≥0∞) :
s ≪ᵥ μ ↔ s.totalVariation ≪ μ.ennrealToMeasure :=
by
constructor <;> intro h
@@ -545,7 +545,7 @@ theorem absolutelyContinuous_ennreal_iff (s : SignedMeasure α) (μ : VectorMeas
· refine' vector_measure.absolutely_continuous.mk fun S hS₁ hS₂ => _
rw [← vector_measure.ennreal_to_measure_apply hS₁] at hS₂
exact null_of_total_variation_zero s (h hS₂)
-#align measure_theory.signed_measure.absolutely_continuous_ennreal_iff MeasureTheory.SignedMeasure.absolutelyContinuous_ennreal_iff
+#align measure_theory.signed_measure.absolutely_continuous_ennreal_iff MeasureTheory.SignedMeasure.absolutelyContinuous_eNNReal_iff
theorem totalVariation_absolutelyContinuous_iff (s : SignedMeasure α) (μ : Measure α) :
s.totalVariation ≪ μ ↔
@@ -584,7 +584,7 @@ theorem mutuallySingular_iff (s t : SignedMeasure α) :
fun t htv => null_of_total_variation_zero _ (measure_mono_null htv hu₂)⟩
#align measure_theory.signed_measure.mutually_singular_iff MeasureTheory.SignedMeasure.mutuallySingular_iff
-theorem mutuallySingular_ennreal_iff (s : SignedMeasure α) (μ : VectorMeasure α ℝ≥0∞) :
+theorem mutuallySingular_eNNReal_iff (s : SignedMeasure α) (μ : VectorMeasure α ℝ≥0∞) :
s ⟂ᵥ μ ↔ s.totalVariation ⟂ₘ μ.ennrealToMeasure :=
by
constructor
@@ -603,7 +603,7 @@ theorem mutuallySingular_ennreal_iff (s : SignedMeasure α) (μ : VectorMeasure
_
rw [← vector_measure.ennreal_to_measure_apply hmt]
exact measure_mono_null htv hu₂
-#align measure_theory.signed_measure.mutually_singular_ennreal_iff MeasureTheory.SignedMeasure.mutuallySingular_ennreal_iff
+#align measure_theory.signed_measure.mutually_singular_ennreal_iff MeasureTheory.SignedMeasure.mutuallySingular_eNNReal_iff
theorem totalVariation_mutuallySingular_iff (s : SignedMeasure α) (μ : Measure α) :
s.totalVariation ⟂ₘ μ ↔
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -306,12 +306,13 @@ between the two sets. -/
theorem of_diff_eq_zero_of_symmDiff_eq_zero_positive (hu : MeasurableSet u) (hv : MeasurableSet v)
(hsu : 0 ≤[u] s) (hsv : 0 ≤[v] s) (hs : s (u ∆ v) = 0) : s (u \ v) = 0 ∧ s (v \ u) = 0 := by
rw [restrict_le_restrict_iff] at hsu hsv
- have a := hsu (hu.diff hv) (u.diff_subset v)
- have b := hsv (hv.diff hu) (v.diff_subset u)
- erw [of_union (Set.disjoint_of_subset_left (u.diff_subset v) disjoint_sdiff_self_right)
- (hu.diff hv) (hv.diff hu)] at hs
- rw [zero_apply] at a b
- constructor
+ on_goal 1 =>
+ have a := hsu (hu.diff hv) (u.diff_subset v)
+ have b := hsv (hv.diff hu) (v.diff_subset u)
+ erw [of_union (Set.disjoint_of_subset_left (u.diff_subset v) disjoint_sdiff_self_right)
+ (hu.diff hv) (hv.diff hu)] at hs
+ rw [zero_apply] at a b
+ constructor
all_goals first | linarith | assumption
#align measure_theory.signed_measure.of_diff_eq_zero_of_symm_diff_eq_zero_positive MeasureTheory.SignedMeasure.of_diff_eq_zero_of_symmDiff_eq_zero_positive
@@ -312,7 +312,7 @@ theorem of_diff_eq_zero_of_symmDiff_eq_zero_positive (hu : MeasurableSet u) (hv
(hu.diff hv) (hv.diff hu)] at hs
rw [zero_apply] at a b
constructor
- all_goals first | linarith | infer_instance | assumption
+ all_goals first | linarith | assumption
#align measure_theory.signed_measure.of_diff_eq_zero_of_symm_diff_eq_zero_positive MeasureTheory.SignedMeasure.of_diff_eq_zero_of_symmDiff_eq_zero_positive
/-- If the symmetric difference of two negative sets is a null-set, then so are the differences
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -217,7 +217,8 @@ end JordanDecomposition
namespace SignedMeasure
-open Classical JordanDecomposition Measure Set VectorMeasure
+open scoped Classical
+open JordanDecomposition Measure Set VectorMeasure
variable {s : SignedMeasure α} {μ ν : Measure α} [IsFiniteMeasure μ] [IsFiniteMeasure ν]
@@ -226,8 +227,8 @@ such that `s = j.toSignedMeasure`. This property is known as the Jordan decompos
theorem, and is shown by
`MeasureTheory.SignedMeasure.toSignedMeasure_toJordanDecomposition`. -/
def toJordanDecomposition (s : SignedMeasure α) : JordanDecomposition α :=
- let i := choose s.exists_compl_positive_negative
- let hi := choose_spec s.exists_compl_positive_negative
+ let i := s.exists_compl_positive_negative.choose
+ let hi := s.exists_compl_positive_negative.choose_spec
{ posPart := s.toMeasureOfZeroLE i hi.1 hi.2.1
negPart := s.toMeasureOfLEZero iᶜ hi.1.compl hi.2.2
posPart_finite := inferInstance
@@ -243,8 +244,8 @@ theorem toJordanDecomposition_spec (s : SignedMeasure α) :
∃ (i : Set α) (hi₁ : MeasurableSet i) (hi₂ : 0 ≤[i] s) (hi₃ : s ≤[iᶜ] 0),
s.toJordanDecomposition.posPart = s.toMeasureOfZeroLE i hi₁ hi₂ ∧
s.toJordanDecomposition.negPart = s.toMeasureOfLEZero iᶜ hi₁.compl hi₃ := by
- set i := choose s.exists_compl_positive_negative
- obtain ⟨hi₁, hi₂, hi₃⟩ := choose_spec s.exists_compl_positive_negative
+ set i := s.exists_compl_positive_negative.choose
+ obtain ⟨hi₁, hi₂, hi₃⟩ := s.exists_compl_positive_negative.choose_spec
exact ⟨i, hi₁, hi₂, hi₃, rfl, rfl⟩
#align measure_theory.signed_measure.to_jordan_decomposition_spec MeasureTheory.SignedMeasure.toJordanDecomposition_spec
Those notations are not scoped whereas the file is very low in the import hierarchy.
@@ -298,6 +298,8 @@ theorem subset_negative_null_set (hu : MeasurableSet u) (hv : MeasurableSet v)
exact this hw₁ hw₂ hwt
#align measure_theory.signed_measure.subset_negative_null_set MeasureTheory.SignedMeasure.subset_negative_null_set
+open scoped symmDiff
+
/-- If the symmetric difference of two positive sets is a null-set, then so are the differences
between the two sets. -/
theorem of_diff_eq_zero_of_symmDiff_eq_zero_positive (hu : MeasurableSet u) (hv : MeasurableSet v)
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -46,14 +46,14 @@ noncomputable section
open scoped Classical MeasureTheory ENNReal NNReal
-variable {α β : Type _} [MeasurableSpace α]
+variable {α β : Type*} [MeasurableSpace α]
namespace MeasureTheory
/-- A Jordan decomposition of a measurable space is a pair of mutually singular,
finite measures. -/
@[ext]
-structure JordanDecomposition (α : Type _) [MeasurableSpace α] where
+structure JordanDecomposition (α : Type*) [MeasurableSpace α] where
(posPart negPart : Measure α)
[posPart_finite : IsFiniteMeasure posPart]
[negPart_finite : IsFiniteMeasure negPart]
@@ -437,7 +437,7 @@ open JordanDecomposition
/-- `MeasureTheory.SignedMeasure.toJordanDecomposition` and
`MeasureTheory.JordanDecomposition.toSignedMeasure` form an `Equiv`. -/
@[simps apply symm_apply]
-def toJordanDecompositionEquiv (α : Type _) [MeasurableSpace α] :
+def toJordanDecompositionEquiv (α : Type*) [MeasurableSpace α] :
SignedMeasure α ≃ JordanDecomposition α where
toFun := toJordanDecomposition
invFun := toSignedMeasure
@@ -2,15 +2,12 @@
Copyright (c) 2021 Kexing Ying. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kexing Ying
-
-! This file was ported from Lean 3 source module measure_theory.decomposition.jordan
-! leanprover-community/mathlib commit 70a4f2197832bceab57d7f41379b2592d1110570
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.MeasureTheory.Decomposition.SignedHahn
import Mathlib.MeasureTheory.Measure.MutuallySingular
+#align_import measure_theory.decomposition.jordan from "leanprover-community/mathlib"@"70a4f2197832bceab57d7f41379b2592d1110570"
+
/-!
# Jordan decomposition
@@ -201,7 +201,7 @@ theorem exists_compl_positive_negative :
∃ S : Set α,
MeasurableSet S ∧
j.toSignedMeasure ≤[S] 0 ∧
- 0 ≤[Sᶜ] j.toSignedMeasure ∧ j.posPart S = 0 ∧ j.negPart (Sᶜ) = 0 := by
+ 0 ≤[Sᶜ] j.toSignedMeasure ∧ j.posPart S = 0 ∧ j.negPart Sᶜ = 0 := by
obtain ⟨S, hS₁, hS₂, hS₃⟩ := j.mutuallySingular
refine' ⟨S, hS₁, _, _, hS₂, hS₃⟩
· refine' restrict_le_restrict_of_subset_le _ _ fun A hA hA₁ => _
@@ -232,7 +232,7 @@ def toJordanDecomposition (s : SignedMeasure α) : JordanDecomposition α :=
let i := choose s.exists_compl_positive_negative
let hi := choose_spec s.exists_compl_positive_negative
{ posPart := s.toMeasureOfZeroLE i hi.1 hi.2.1
- negPart := s.toMeasureOfLEZero (iᶜ) hi.1.compl hi.2.2
+ negPart := s.toMeasureOfLEZero iᶜ hi.1.compl hi.2.2
posPart_finite := inferInstance
negPart_finite := inferInstance
mutuallySingular := by
@@ -245,7 +245,7 @@ def toJordanDecomposition (s : SignedMeasure α) : JordanDecomposition α :=
theorem toJordanDecomposition_spec (s : SignedMeasure α) :
∃ (i : Set α) (hi₁ : MeasurableSet i) (hi₂ : 0 ≤[i] s) (hi₃ : s ≤[iᶜ] 0),
s.toJordanDecomposition.posPart = s.toMeasureOfZeroLE i hi₁ hi₂ ∧
- s.toJordanDecomposition.negPart = s.toMeasureOfLEZero (iᶜ) hi₁.compl hi₃ := by
+ s.toJordanDecomposition.negPart = s.toMeasureOfLEZero iᶜ hi₁.compl hi₃ := by
set i := choose s.exists_compl_positive_negative
obtain ⟨hi₁, hi₂, hi₃⟩ := choose_spec s.exists_compl_positive_negative
exact ⟨i, hi₁, hi₂, hi₃, rfl, rfl⟩
@@ -269,7 +269,7 @@ theorem toSignedMeasure_toJordanDecomposition (s : SignedMeasure α) :
toMeasureOfLEZero_apply _ hi₃ hi₁.compl hk]
simp only [ENNReal.coe_toReal, NNReal.coe_mk, ENNReal.some_eq_coe, sub_neg_eq_add]
rw [← of_union _ (MeasurableSet.inter hi₁ hk) (MeasurableSet.inter hi₁.compl hk),
- Set.inter_comm i, Set.inter_comm (iᶜ), Set.inter_union_compl _ _]
+ Set.inter_comm i, Set.inter_comm iᶜ, Set.inter_union_compl _ _]
exact (disjoint_compl_right.inf_left _).inf_right _
#align measure_theory.signed_measure.to_signed_measure_to_jordan_decomposition MeasureTheory.SignedMeasure.toSignedMeasure_toJordanDecomposition
@@ -264,9 +264,7 @@ theorem toSignedMeasure_toJordanDecomposition (s : SignedMeasure α) :
s.toJordanDecomposition.toSignedMeasure = s := by
obtain ⟨i, hi₁, hi₂, hi₃, hμ, hν⟩ := s.toJordanDecomposition_spec
simp only [JordanDecomposition.toSignedMeasure, hμ, hν]
- -- Porting note: was `ext (k hk)`
- ext k
- intro hk
+ ext k hk
rw [toSignedMeasure_sub_apply hk, toMeasureOfZeroLE_apply _ hi₂ hi₁ hk,
toMeasureOfLEZero_apply _ hi₃ hi₁.compl hk]
simp only [ENNReal.coe_toReal, NNReal.coe_mk, ENNReal.some_eq_coe, sub_neg_eq_add]
@@ -175,21 +175,21 @@ def toSignedMeasure : SignedMeasure α :=
theorem toSignedMeasure_zero : (0 : JordanDecomposition α).toSignedMeasure = 0 := by
ext1 i hi
- -- Porting note: replaced `erw`
+ -- Porting note: replaced `erw` by adding further lemmas
rw [toSignedMeasure, toSignedMeasure_sub_apply hi, zero_posPart, zero_negPart, sub_self,
VectorMeasure.coe_zero, Pi.zero_apply]
#align measure_theory.jordan_decomposition.to_signed_measure_zero MeasureTheory.JordanDecomposition.toSignedMeasure_zero
theorem toSignedMeasure_neg : (-j).toSignedMeasure = -j.toSignedMeasure := by
ext1 i hi
- -- Porting note: replaced `rfl`
+ -- Porting note: removed `rfl` after the `rw` by adding further steps.
rw [neg_apply, toSignedMeasure, toSignedMeasure, toSignedMeasure_sub_apply hi,
toSignedMeasure_sub_apply hi, neg_sub, neg_posPart, neg_negPart]
#align measure_theory.jordan_decomposition.to_signed_measure_neg MeasureTheory.JordanDecomposition.toSignedMeasure_neg
theorem toSignedMeasure_smul (r : ℝ≥0) : (r • j).toSignedMeasure = r • j.toSignedMeasure := by
ext1 i hi
- -- Porting note: replaced `rfl`
+ -- Porting note: removed `rfl` after the `rw` by adding further steps.
rw [VectorMeasure.smul_apply, toSignedMeasure, toSignedMeasure,
toSignedMeasure_sub_apply hi, toSignedMeasure_sub_apply hi, smul_sub, smul_posPart,
smul_negPart, ← ENNReal.toReal_smul, ← ENNReal.toReal_smul, smul_toOuterMeasure,
@@ -440,7 +440,7 @@ namespace SignedMeasure
open JordanDecomposition
/-- `MeasureTheory.SignedMeasure.toJordanDecomposition` and
-`MeasureTheory.JordanDecomposition.toSignedMeasure` form a `Equiv`. -/
+`MeasureTheory.JordanDecomposition.toSignedMeasure` form an `Equiv`. -/
@[simps apply symm_apply]
def toJordanDecompositionEquiv (α : Type _) [MeasurableSpace α] :
SignedMeasure α ≃ JordanDecomposition α where
@@ -243,7 +243,7 @@ def toJordanDecomposition (s : SignedMeasure α) : JordanDecomposition α :=
#align measure_theory.signed_measure.to_jordan_decomposition MeasureTheory.SignedMeasure.toJordanDecomposition
theorem toJordanDecomposition_spec (s : SignedMeasure α) :
- ∃ (i : Set α)(hi₁ : MeasurableSet i)(hi₂ : 0 ≤[i] s)(hi₃ : s ≤[iᶜ] 0),
+ ∃ (i : Set α) (hi₁ : MeasurableSet i) (hi₂ : 0 ≤[i] s) (hi₃ : s ≤[iᶜ] 0),
s.toJordanDecomposition.posPart = s.toMeasureOfZeroLE i hi₁ hi₂ ∧
s.toJordanDecomposition.negPart = s.toMeasureOfLEZero (iᶜ) hi₁.compl hi₃ := by
set i := choose s.exists_compl_positive_negative
@@ -543,7 +543,7 @@ theorem totalVariation_absolutelyContinuous_iff (s : SignedMeasure α) (μ : Mea
refine' Measure.AbsolutelyContinuous.mk fun S _ hS₂ => _
have := h hS₂
rw [totalVariation, Measure.add_apply, add_eq_zero_iff] at this
- exacts[this.1, this.2]
+ exacts [this.1, this.2]
· refine' Measure.AbsolutelyContinuous.mk fun S _ hS₂ => _
rw [totalVariation, Measure.add_apply, h.1 hS₂, h.2 hS₂, add_zero]
#align measure_theory.signed_measure.total_variation_absolutely_continuous_iff MeasureTheory.SignedMeasure.totalVariation_absolutelyContinuous_iff
Is
of Foo
which is ported from is_foo
(#4639)
I have misported is_foo
to Foo
because I misunderstood the rule for IsLawfulFoo
.
This PR recover Is
of Foo
which is ported from is_foo
.
This PR also renames some misported theorems.
@@ -58,8 +58,8 @@ finite measures. -/
@[ext]
structure JordanDecomposition (α : Type _) [MeasurableSpace α] where
(posPart negPart : Measure α)
- [posPart_finite : FiniteMeasure posPart]
- [negPart_finite : FiniteMeasure negPart]
+ [posPart_finite : IsFiniteMeasure posPart]
+ [negPart_finite : IsFiniteMeasure negPart]
mutuallySingular : posPart ⟂ₘ negPart
#align measure_theory.jordan_decomposition MeasureTheory.JordanDecomposition
#align measure_theory.jordan_decomposition.pos_part MeasureTheory.JordanDecomposition.posPart
@@ -222,7 +222,7 @@ namespace SignedMeasure
open Classical JordanDecomposition Measure Set VectorMeasure
-variable {s : SignedMeasure α} {μ ν : Measure α} [FiniteMeasure μ] [FiniteMeasure ν]
+variable {s : SignedMeasure α} {μ ν : Measure α} [IsFiniteMeasure μ] [IsFiniteMeasure ν]
/-- Given a signed measure `s`, `s.toJordanDecomposition` is the Jordan decomposition `j`,
such that `s = j.toSignedMeasure`. This property is known as the Jordan decomposition
The unported dependencies are
algebra.order.module
init.core
linear_algebra.free_module.finite.rank
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
linear_algebra.free_module.rank
algebra.order.monoid.cancel.basic
init.data.list.default
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file