-
Notifications
You must be signed in to change notification settings - Fork 1.5k
[Merged by Bors] - feat(MeasureTheory): the integral of a vector-valued function against a vector measure is additive #30230
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
df68816
b3d214d
82d428f
c73ee93
fa70a41
caa8ff8
8a9255b
876d734
030f3e4
4d4f109
fa73d41
345914e
e586acd
9ea9916
a8fe7e5
36297d3
da471ec
fd50c1d
d161eaf
5497fdf
893ac2b
dc41fb6
ab8b3de
4d206f0
6bd29bf
0c19b00
69b3ac3
de37743
b7058ab
0606ced
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -58,15 +58,13 @@ def FinMeasAdditive {β} [AddMonoid β] {_ : MeasurableSpace α} (μ : Measure | |
|
|
||
| namespace FinMeasAdditive | ||
|
|
||
| variable {β : Type*} [AddCommMonoid β] {T T' : Set α → β} | ||
| variable {β : Type*} {T T' : Set α → β} | ||
|
|
||
| theorem zero : FinMeasAdditive μ (0 : Set α → β) := fun _ _ _ _ _ _ _ => by simp | ||
| section AddMonoid | ||
|
|
||
| theorem add (hT : FinMeasAdditive μ T) (hT' : FinMeasAdditive μ T') : | ||
| FinMeasAdditive μ (T + T') := by | ||
| intro s t hs ht hμs hμt hst | ||
| simp only [hT s t hs ht hμs hμt hst, hT' s t hs ht hμs hμt hst, Pi.add_apply] | ||
| abel | ||
| variable [AddMonoid β] | ||
|
|
||
| theorem zero : FinMeasAdditive μ (0 : Set α → β) := fun _ _ _ _ _ _ _ => by simp | ||
|
|
||
| theorem smul [DistribSMul 𝕜 β] (hT : FinMeasAdditive μ T) (c : 𝕜) : | ||
| FinMeasAdditive μ fun s => c • T s := fun s t hs ht hμs hμt hst => by | ||
|
|
@@ -76,6 +74,16 @@ theorem of_eq_top_imp_eq_top {μ' : Measure α} (h : ∀ s, MeasurableSet s → | |
| (hT : FinMeasAdditive μ T) : FinMeasAdditive μ' T := fun s t hs ht hμ's hμ't hst => | ||
| hT s t hs ht (mt (h s hs) hμ's) (mt (h t ht) hμ't) hst | ||
|
|
||
| theorem add_right_measure {ν : Measure α} (hT : FinMeasAdditive μ T) : | ||
| FinMeasAdditive (μ + ν) T := | ||
| hT.of_eq_top_imp_eq_top fun s _ hμs => | ||
| top_unique <| hμs.symm.trans_le (Measure.le_add_right le_rfl s) | ||
|
|
||
| theorem add_left_measure {ν : Measure α} (hT : FinMeasAdditive μ T) : | ||
| FinMeasAdditive (ν + μ) T := | ||
| hT.of_eq_top_imp_eq_top fun s _ hμs => | ||
| top_unique <| hμs.symm.trans_le (Measure.le_add_left le_rfl s) | ||
|
|
||
| theorem of_smul_measure {c : ℝ≥0∞} (hc_ne_top : c ≠ ∞) (hT : FinMeasAdditive (c • μ) T) : | ||
| FinMeasAdditive μ T := by | ||
| refine of_eq_top_imp_eq_top (fun s _ hμs => ?_) hT | ||
|
|
@@ -102,6 +110,22 @@ theorem map_empty_eq_zero {β} [AddCancelMonoid β] {T : Set α → β} (hT : Fi | |
| nth_rw 1 [← add_zero (T ∅)] at hT | ||
| exact (add_left_cancel hT).symm | ||
|
|
||
| end AddMonoid | ||
|
|
||
| section AddCommMonoid | ||
|
|
||
| variable [AddCommMonoid β] | ||
|
|
||
| theorem add (hT : FinMeasAdditive μ T) (hT' : FinMeasAdditive μ T') : | ||
| FinMeasAdditive μ (T + T') := by | ||
| intro s t hs ht hμs hμt hst | ||
| simp only [hT s t hs ht hμs hμt hst, hT' s t hs ht hμs hμt hst, Pi.add_apply] | ||
| abel | ||
|
|
||
| theorem add_measure {ν : Measure α} (hT : FinMeasAdditive μ T) (hT' : FinMeasAdditive ν T') : | ||
| FinMeasAdditive (μ + ν) (T + T') := | ||
| hT.add_right_measure.add (hT'.add_left_measure) | ||
|
|
||
| theorem map_iUnion_fin_meas_set_eq_sum (T : Set α → β) (T_empty : T ∅ = 0) | ||
| (h_add : FinMeasAdditive μ T) {ι} (S : ι → Set α) (sι : Finset ι) | ||
| (hS_meas : ∀ i, MeasurableSet (S i)) (hSp : ∀ i ∈ sι, μ (S i) ≠ ∞) | ||
|
|
@@ -130,6 +154,19 @@ theorem map_iUnion_fin_meas_set_eq_sum (T : Set α → β) (T_empty : T ∅ = 0) | |
| rw [← hai] at hi | ||
| exact has hi | ||
|
|
||
| end AddCommMonoid | ||
|
|
||
| theorem neg [AddGroup β] (hT : FinMeasAdditive μ T) : | ||
| FinMeasAdditive μ (-T) := by | ||
| intro s t hs ht hμs hμt hst | ||
| have h_comm : T s + T t = T t + T s := by | ||
| rw [← hT s t hs ht hμs hμt hst, ← hT t s ht hs hμt hμs hst.symm, union_comm] | ||
| simp_all [hT s t hs ht hμs hμt hst, neg_add_rev] | ||
|
|
||
| theorem sub [AddCommGroup β] (hT : FinMeasAdditive μ T) (hT' : FinMeasAdditive μ T') : | ||
| FinMeasAdditive μ (T - T') := | ||
| sub_eq_add_neg T T' ▸ hT.add hT'.neg | ||
|
|
||
| end FinMeasAdditive | ||
|
|
||
| /-- A `FinMeasAdditive` set function whose norm on every set is less than the measure of the | ||
|
|
@@ -160,12 +197,20 @@ theorem eq_zero {β : Type*} [NormedAddCommGroup β] {T : Set α → β} {C : | |
| T s = 0 := | ||
| eq_zero_of_measure_zero hT hs (by simp only [Measure.coe_zero, Pi.zero_apply]) | ||
|
|
||
| theorem of_le (hT : DominatedFinMeasAdditive μ T C) (hC : C ≤ C') : | ||
| DominatedFinMeasAdditive μ T C' := | ||
| ⟨hT.1, fun s hs hμs => (hT.2 s hs hμs).trans <| mul_le_mul_of_nonneg_right hC measureReal_nonneg⟩ | ||
|
|
||
| theorem add (hT : DominatedFinMeasAdditive μ T C) (hT' : DominatedFinMeasAdditive μ T' C') : | ||
| DominatedFinMeasAdditive μ (T + T') (C + C') := by | ||
| refine ⟨hT.1.add hT'.1, fun s hs hμs => ?_⟩ | ||
| rw [Pi.add_apply, add_mul] | ||
| exact (norm_add_le _ _).trans (add_le_add (hT.2 s hs hμs) (hT'.2 s hs hμs)) | ||
|
|
||
| theorem neg (hT : DominatedFinMeasAdditive μ T C) : | ||
| DominatedFinMeasAdditive μ (-T) C := | ||
| ⟨hT.1.neg, fun s hs hμs => by simpa using hT.2 s hs hμs⟩ | ||
|
|
||
| theorem smul [SeminormedAddGroup 𝕜] [DistribSMul 𝕜 β] [IsBoundedSMul 𝕜 β] | ||
| (hT : DominatedFinMeasAdditive μ T C) (c : 𝕜) : | ||
| DominatedFinMeasAdditive μ (fun s => c • T s) (‖c‖ * C) := by | ||
|
|
@@ -185,6 +230,26 @@ theorem of_measure_le {μ' : Measure α} (h : μ ≤ μ') (hT : DominatedFinMeas | |
| gcongr | ||
| exact hμ's.ne | ||
|
|
||
| theorem add_measure {C' : ℝ} (μ ν : Measure α) | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. same as above
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think we have a symmetry here because the constant is
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. oh yes, I meant lemmas like (adding but you wrote
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. But I wonder whether it is better to remove |
||
| (hT : DominatedFinMeasAdditive μ T C) (hT' : DominatedFinMeasAdditive ν T' C') : | ||
| DominatedFinMeasAdditive (μ + ν) (T + T') (max C C') := by | ||
| refine ⟨hT.1.add_measure hT'.1, fun s hs hsf ↦ ?_⟩ | ||
| have hμs : μ s < ∞ := (Measure.le_add_right le_rfl s).trans_lt hsf | ||
| have hνs : ν s < ∞ := (Measure.le_add_left le_rfl s).trans_lt hsf | ||
| rw [Pi.add_apply, measureReal_add_apply hμs.ne hνs.ne, mul_add] | ||
| calc | ||
| ‖T s + T' s‖ ≤ ‖T s‖ + ‖T' s‖ := norm_add_le _ _ | ||
| _ ≤ C * μ.real s + C' * ν.real s := add_le_add (hT.2 s hs hμs) (hT'.2 s hs hνs) | ||
| _ ≤ max C C' * μ.real s + max C C' * ν.real s := by | ||
| gcongr | ||
| · exact le_max_left C C' | ||
| · exact le_max_right C C' | ||
|
|
||
| theorem sub_measure {C' : ℝ} (μ ν : Measure α) | ||
| (hT : DominatedFinMeasAdditive μ T C) (hT' : DominatedFinMeasAdditive ν T' C') : | ||
| DominatedFinMeasAdditive (μ + ν) (T - T') (max C C') := | ||
| sub_eq_add_neg T T' ▸ hT.add_measure μ ν hT'.neg | ||
|
|
||
| theorem add_measure_right {_ : MeasurableSpace α} (μ ν : Measure α) | ||
| (hT : DominatedFinMeasAdditive μ T C) (hC : 0 ≤ C) : DominatedFinMeasAdditive (μ + ν) T C := | ||
| of_measure_le (Measure.le_add_right le_rfl) hT hC | ||
|
|
@@ -193,6 +258,14 @@ theorem add_measure_left {_ : MeasurableSpace α} (μ ν : Measure α) | |
| (hT : DominatedFinMeasAdditive ν T C) (hC : 0 ≤ C) : DominatedFinMeasAdditive (μ + ν) T C := | ||
| of_measure_le (Measure.le_add_left le_rfl) hT hC | ||
|
|
||
| theorem finsetSum_measure {ι} {s : Finset ι} (hs : s.Nonempty) (μ : ι → Measure α) | ||
| (T : ι → Set α → β) (C : ι → ℝ) (hT : ∀ i, DominatedFinMeasAdditive (μ i) (T i) (C i)) : | ||
| DominatedFinMeasAdditive (∑ i ∈ s, μ i) (∑ i ∈ s, T i) (s.sup' hs C) := by | ||
|
Comment on lines
+261
to
+263
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Assuming |
||
| induction hs using Finset.Nonempty.cons_induction with | ||
| | singleton i => simp_all | ||
| | @cons i s his hs' ih => | ||
| simpa [his, Finset.sup'_cons hs' C] using (hT i).add_measure (μ i) (∑ j ∈ s, μ j) ih | ||
|
|
||
| theorem of_smul_measure {c : ℝ≥0∞} (hc_ne_top : c ≠ ∞) (hT : DominatedFinMeasAdditive (c • μ) T C) : | ||
| DominatedFinMeasAdditive μ T (c.toReal * C) := by | ||
| have h : ∀ s, MeasurableSet s → c • μ s = ∞ → μ s = ∞ := by | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.