@@ -58,15 +58,13 @@ def FinMeasAdditive {β} [AddMonoid β] {_ : MeasurableSpace α} (μ : Measure
5858
5959namespace FinMeasAdditive
6060
61- variable {β : Type *} [AddCommMonoid β] {T T' : Set α → β}
61+ variable {β : Type *} {T T' : Set α → β}
6262
63- theorem zero : FinMeasAdditive μ ( 0 : Set α → β) := fun _ _ _ _ _ _ _ => by simp
63+ section AddMonoid
6464
65- theorem add (hT : FinMeasAdditive μ T) (hT' : FinMeasAdditive μ T') :
66- FinMeasAdditive μ (T + T') := by
67- intro s t hs ht hμs hμt hst
68- 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]
69- abel
65+ variable [AddMonoid β]
66+
67+ theorem zero : FinMeasAdditive μ (0 : Set α → β) := fun _ _ _ _ _ _ _ => by simp
7068
7169theorem smul [DistribSMul 𝕜 β] (hT : FinMeasAdditive μ T) (c : 𝕜) :
7270 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 →
7674 (hT : FinMeasAdditive μ T) : FinMeasAdditive μ' T := fun s t hs ht hμ's hμ't hst =>
7775 hT s t hs ht (mt (h s hs) hμ's) (mt (h t ht) hμ't) hst
7876
77+ theorem add_right_measure {ν : Measure α} (hT : FinMeasAdditive μ T) :
78+ FinMeasAdditive (μ + ν) T :=
79+ hT.of_eq_top_imp_eq_top fun s _ hμs =>
80+ top_unique <| hμs.symm.trans_le (Measure.le_add_right le_rfl s)
81+
82+ theorem add_left_measure {ν : Measure α} (hT : FinMeasAdditive μ T) :
83+ FinMeasAdditive (ν + μ) T :=
84+ hT.of_eq_top_imp_eq_top fun s _ hμs =>
85+ top_unique <| hμs.symm.trans_le (Measure.le_add_left le_rfl s)
86+
7987theorem of_smul_measure {c : ℝ≥0 ∞} (hc_ne_top : c ≠ ∞) (hT : FinMeasAdditive (c • μ) T) :
8088 FinMeasAdditive μ T := by
8189 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
102110 nth_rw 1 [← add_zero (T ∅)] at hT
103111 exact (add_left_cancel hT).symm
104112
113+ end AddMonoid
114+
115+ section AddCommMonoid
116+
117+ variable [AddCommMonoid β]
118+
119+ theorem add (hT : FinMeasAdditive μ T) (hT' : FinMeasAdditive μ T') :
120+ FinMeasAdditive μ (T + T') := by
121+ intro s t hs ht hμs hμt hst
122+ 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]
123+ abel
124+
125+ theorem add_measure {ν : Measure α} (hT : FinMeasAdditive μ T) (hT' : FinMeasAdditive ν T') :
126+ FinMeasAdditive (μ + ν) (T + T') :=
127+ hT.add_right_measure.add (hT'.add_left_measure)
128+
105129theorem map_iUnion_fin_meas_set_eq_sum (T : Set α → β) (T_empty : T ∅ = 0 )
106130 (h_add : FinMeasAdditive μ T) {ι} (S : ι → Set α) (sι : Finset ι)
107131 (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)
130154 rw [← hai] at hi
131155 exact has hi
132156
157+ end AddCommMonoid
158+
159+ theorem neg [AddGroup β] (hT : FinMeasAdditive μ T) :
160+ FinMeasAdditive μ (-T) := by
161+ intro s t hs ht hμs hμt hst
162+ have h_comm : T s + T t = T t + T s := by
163+ rw [← hT s t hs ht hμs hμt hst, ← hT t s ht hs hμt hμs hst.symm, union_comm]
164+ simp_all [hT s t hs ht hμs hμt hst, neg_add_rev]
165+
166+ theorem sub [AddCommGroup β] (hT : FinMeasAdditive μ T) (hT' : FinMeasAdditive μ T') :
167+ FinMeasAdditive μ (T - T') :=
168+ sub_eq_add_neg T T' ▸ hT.add hT'.neg
169+
133170end FinMeasAdditive
134171
135172/-- 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 :
160197 T s = 0 :=
161198 eq_zero_of_measure_zero hT hs (by simp only [Measure.coe_zero, Pi.zero_apply])
162199
200+ theorem of_le (hT : DominatedFinMeasAdditive μ T C) (hC : C ≤ C') :
201+ DominatedFinMeasAdditive μ T C' :=
202+ ⟨hT.1 , fun s hs hμs => (hT.2 s hs hμs).trans <| mul_le_mul_of_nonneg_right hC measureReal_nonneg⟩
203+
163204theorem add (hT : DominatedFinMeasAdditive μ T C) (hT' : DominatedFinMeasAdditive μ T' C') :
164205 DominatedFinMeasAdditive μ (T + T') (C + C') := by
165206 refine ⟨hT.1 .add hT'.1 , fun s hs hμs => ?_⟩
166207 rw [Pi.add_apply, add_mul]
167208 exact (norm_add_le _ _).trans (add_le_add (hT.2 s hs hμs) (hT'.2 s hs hμs))
168209
210+ theorem neg (hT : DominatedFinMeasAdditive μ T C) :
211+ DominatedFinMeasAdditive μ (-T) C :=
212+ ⟨hT.1 .neg, fun s hs hμs => by simpa using hT.2 s hs hμs⟩
213+
169214theorem smul [SeminormedAddGroup 𝕜] [DistribSMul 𝕜 β] [IsBoundedSMul 𝕜 β]
170215 (hT : DominatedFinMeasAdditive μ T C) (c : 𝕜) :
171216 DominatedFinMeasAdditive μ (fun s => c • T s) (‖c‖ * C) := by
@@ -185,6 +230,26 @@ theorem of_measure_le {μ' : Measure α} (h : μ ≤ μ') (hT : DominatedFinMeas
185230 gcongr
186231 exact hμ's.ne
187232
233+ theorem add_measure {C' : ℝ} (μ ν : Measure α)
234+ (hT : DominatedFinMeasAdditive μ T C) (hT' : DominatedFinMeasAdditive ν T' C') :
235+ DominatedFinMeasAdditive (μ + ν) (T + T') (max C C') := by
236+ refine ⟨hT.1 .add_measure hT'.1 , fun s hs hsf ↦ ?_⟩
237+ have hμs : μ s < ∞ := (Measure.le_add_right le_rfl s).trans_lt hsf
238+ have hνs : ν s < ∞ := (Measure.le_add_left le_rfl s).trans_lt hsf
239+ rw [Pi.add_apply, measureReal_add_apply hμs.ne hνs.ne, mul_add]
240+ calc
241+ ‖T s + T' s‖ ≤ ‖T s‖ + ‖T' s‖ := norm_add_le _ _
242+ _ ≤ C * μ.real s + C' * ν.real s := add_le_add (hT.2 s hs hμs) (hT'.2 s hs hνs)
243+ _ ≤ max C C' * μ.real s + max C C' * ν.real s := by
244+ gcongr
245+ · exact le_max_left C C'
246+ · exact le_max_right C C'
247+
248+ theorem sub_measure {C' : ℝ} (μ ν : Measure α)
249+ (hT : DominatedFinMeasAdditive μ T C) (hT' : DominatedFinMeasAdditive ν T' C') :
250+ DominatedFinMeasAdditive (μ + ν) (T - T') (max C C') :=
251+ sub_eq_add_neg T T' ▸ hT.add_measure μ ν hT'.neg
252+
188253theorem add_measure_right {_ : MeasurableSpace α} (μ ν : Measure α)
189254 (hT : DominatedFinMeasAdditive μ T C) (hC : 0 ≤ C) : DominatedFinMeasAdditive (μ + ν) T C :=
190255 of_measure_le (Measure.le_add_right le_rfl) hT hC
@@ -193,6 +258,14 @@ theorem add_measure_left {_ : MeasurableSpace α} (μ ν : Measure α)
193258 (hT : DominatedFinMeasAdditive ν T C) (hC : 0 ≤ C) : DominatedFinMeasAdditive (μ + ν) T C :=
194259 of_measure_le (Measure.le_add_left le_rfl) hT hC
195260
261+ theorem finsetSum_measure {ι} {s : Finset ι} (hs : s.Nonempty) (μ : ι → Measure α)
262+ (T : ι → Set α → β) (C : ι → ℝ) (hT : ∀ i, DominatedFinMeasAdditive (μ i) (T i) (C i)) :
263+ DominatedFinMeasAdditive (∑ i ∈ s, μ i) (∑ i ∈ s, T i) (s.sup' hs C) := by
264+ induction hs using Finset.Nonempty.cons_induction with
265+ | singleton i => simp_all
266+ | @cons i s his hs' ih =>
267+ simpa [his, Finset.sup'_cons hs' C] using (hT i).add_measure (μ i) (∑ j ∈ s, μ j) ih
268+
196269theorem of_smul_measure {c : ℝ≥0 ∞} (hc_ne_top : c ≠ ∞) (hT : DominatedFinMeasAdditive (c • μ) T C) :
197270 DominatedFinMeasAdditive μ T (c.toReal * C) := by
198271 have h : ∀ s, MeasurableSet s → c • μ s = ∞ → μ s = ∞ := by
0 commit comments