測度論と積分

4.2. 測度🔗

4.2.1. 測度🔗

🔗
定義 (測度).

X を可測空間とする。 X 上の 測度 とは、各可測集合 A \subseteq X[0,\infty] の値を対応させる関数であって、次を満たすものをいう。

  1. \mu(\emptyset) = 0 である。

  2. AB が可測で交わりを持たなければ、\mu(A \cup B) = \mu(A) + \mu(B) である。

  3. A_0 \subseteq A_1 \subseteq \cdots が可測集合の増大列ならば、 \mu\left(\bigcup_{n \in \mathbb{N}} A_n\right) = \sup_{n \in \mathbb{N}} \mu(A_n) である。

Lean code
structure Measure (X : Type*) [MeasurableSpace X] where toFun : (A : Set X) MeasurableSet A ℝ≥0∞ empty' : toFun .empty = 0 union' : {A B : Set X} (hA : MeasurableSet A) (hB : MeasurableSet B) (_hAB : Disjoint A B), toFun (A B) (hA.union hB) = toFun A hA + toFun B hB iUnion_of_monotone' : {A : Set X} (hA : i, MeasurableSet (A i)) (_hmono : Monotone A), toFun ( i, A i) (.iUnion hA) = i, toFun (A i) (hA i)
定理 (可算加法性).

A_0, A_1, \dots \subseteq X を互いに交わらない可測集合の列とする。 このとき \mu\left(\bigcup_{n \in \mathbb{N}} A_n\right) = \sum_{n \in \mathbb{N}} \mu(A_n).

Lean code
theorem Measure.iUnion_of_disjoint' (μ : Measure X) {A : Set X} (hd : Pairwise (Disjoint on A)) (hA : n, MeasurableSet (A n)) : μ.toFun ( n, A n) (.iUnion hA) = ∑' n, μ.toFun (A n) (hA n) := calc μ.toFun ( n, A n) (.iUnion hA) _ = μ.toFun ( n, accumulate A n) (.iUnion (.accumulate hA)) := X:Type u_1inst✝:MeasurableSpace Xμ:Measure XA: Set Xhd:Pairwise (Disjoint on A)hA: (n : ), MeasurableSet (A n)μ.toFun (⋃ n, A n) = μ.toFun (⋃ n, accumulate A n) All goals completed! 🐙 _ = n, μ.toFun (accumulate A n) (.accumulate hA n) := μ.iUnion_of_monotone' (.accumulate hA) monotone_accumulate _ = n, j Finset.range (n + 1), μ.toFun (A j) (hA j) := iSup_congr <| Measure.accumulate_eq_sum' μ hA hd _ = ∑' n, μ.toFun (A n) (hA n) := (ENNReal.tsum_eq_iSup_nat' (Filter.tendsto_add_atTop_nat 1)).symm
定理 (可算加法性から作る測度).

逆に、可測集合上の関数 \mu(A) が与えられていて、次を満たすとする。

  1. \mu(\emptyset) = 0 である。

  2. 互いに交わらない可測集合の列 A_0, A_1, \dots に対して常に \mu\left(\bigcup_{n \in \mathbb{N}} A_n\right) = \sum_{n \in \mathbb{N}} \mu(A_n). が成り立つ。

このとき \mu は測度である。

Lean code
theorem Measure.iUnion_of_disjoint_countable (m : (A : Set X) MeasurableSet A ℝ≥0∞) (m_empty : m .empty = 0) (m_iUnion : {A : Set X} (hA : i, MeasurableSet (A i)) (_hAd : Pairwise (Disjoint on A)), m ( i, A i) (.iUnion hA) = ∑' i, m (A i) (hA i)) {ι : Type*} [Countable ι] {A : ι Set X} (hA : i, MeasurableSet (A i)) (hAd : Pairwise (Disjoint on A)) : m ( i, A i) (.iUnion hA) = ∑' i, m (A i) (hA i) := X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)m (⋃ i, A i) = ∑' (i : ι), m (A i) classical X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm (⋃ i, A i) = ∑' (i : ι), m (A i) X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0m (⋃ i, A i) = ∑' (i : ι), m (A i) have hm' : {s : Set X} (hs : MeasurableSet s), m' s = m s hs := X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)m (⋃ i, A i) = ∑' (i : ι), m (A i) intro s X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0s:Set Xhs:MeasurableSet sm' s = m s hs All goals completed! 🐙 have hm'_empty : m' = 0 := X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)m (⋃ i, A i) = ∑' (i : ι), m (A i) All goals completed! 🐙 have hdecode : n, MeasurableSet ( i Encodable.decode₂ ι n, A i) := X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)m (⋃ i, A i) = ∑' (i : ι), m (A i) X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))n:MeasurableSet (⋃ i Encodable.decode₂ ι n, A i) X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))n:MeasurableSet X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))n: (b : ι), MeasurableSet (A b) X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))n:MeasurableSet All goals completed! 🐙 X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))n: (b : ι), MeasurableSet (A b) X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))n:i:ιMeasurableSet (A i) All goals completed! 🐙 calc m ( i, A i) (.iUnion hA) = m ( n, i Encodable.decode₂ ι n, A i) (.iUnion hdecode) := X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))hdecode: (n : ), MeasurableSet (⋃ i Encodable.decode₂ ι n, A i) := fun n => Encodable.iUnion_decode₂_cases MeasurableSet.empty fun i => hA im (⋃ i, A i) = m (⋃ n, i Encodable.decode₂ ι n, A i) X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))hdecode: (n : ), MeasurableSet (⋃ i Encodable.decode₂ ι n, A i) := fun n => Encodable.iUnion_decode₂_cases MeasurableSet.empty fun i => hA i i, A i = n, i Encodable.decode₂ ι n, A i All goals completed! 🐙 _ = ∑' n, m ( i Encodable.decode₂ ι n, A i) (hdecode n) := m_iUnion hdecode (Encodable.iUnion_decode₂_disjoint_on hAd) _ = ∑' n, m' ( i Encodable.decode₂ ι n, A i) := X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))hdecode: (n : ), MeasurableSet (⋃ i Encodable.decode₂ ι n, A i) := fun n => Encodable.iUnion_decode₂_cases MeasurableSet.empty fun i => hA i∑' (n : ), m (⋃ i Encodable.decode₂ ι n, A i) = ∑' (n : ), m' (⋃ i Encodable.decode₂ ι n, A i) X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))hdecode: (n : ), MeasurableSet (⋃ i Encodable.decode₂ ι n, A i) := fun n => Encodable.iUnion_decode₂_cases MeasurableSet.empty fun i => hA i (b : ), m (⋃ i Encodable.decode₂ ι b, A i) = m' (⋃ i Encodable.decode₂ ι b, A i) X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))hdecode: (n : ), MeasurableSet (⋃ i Encodable.decode₂ ι n, A i) := fun n => Encodable.iUnion_decode₂_cases MeasurableSet.empty fun i => hA in:m (⋃ i Encodable.decode₂ ι n, A i) = m' (⋃ i Encodable.decode₂ ι n, A i) X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))hdecode: (n : ), MeasurableSet (⋃ i Encodable.decode₂ ι n, A i) := fun n => Encodable.iUnion_decode₂_cases MeasurableSet.empty fun i => hA in:m' (⋃ i Encodable.decode₂ ι n, A i) = m (⋃ i Encodable.decode₂ ι n, A i) All goals completed! 🐙 _ = ∑' i, m' (A i) := X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))hdecode: (n : ), MeasurableSet (⋃ i Encodable.decode₂ ι n, A i) := fun n => Encodable.iUnion_decode₂_cases MeasurableSet.empty fun i => hA i∑' (n : ), m' (⋃ i Encodable.decode₂ ι n, A i) = ∑' (i : ι), m' (A i) All goals completed! 🐙 _ = ∑' i, m (A i) (hA i) := X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))hdecode: (n : ), MeasurableSet (⋃ i Encodable.decode₂ ι n, A i) := fun n => Encodable.iUnion_decode₂_cases MeasurableSet.empty fun i => hA i∑' (i : ι), m' (A i) = ∑' (i : ι), m (A i) X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))hdecode: (n : ), MeasurableSet (⋃ i Encodable.decode₂ ι n, A i) := fun n => Encodable.iUnion_decode₂_cases MeasurableSet.empty fun i => hA i (b : ι), m' (A b) = m (A b) X:Type u_1inst✝¹:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) ι:Type u_2inst✝:Countable ιA:ι Set XhA: (i : ι), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)val✝:Encodable ιm':Set X ℝ≥0∞ := fun s => if hs : MeasurableSet s then m s hs else 0hm': {s : Set X} (hs : MeasurableSet s), m' s = m s hs := fun {s} hs => of_eq_true (Eq.trans (congrFun' (congrArg Eq (dite_cond_eq_true (eq_true hs))) (m s hs)) (eq_self (m s (of_eq_true (eq_true hs)))))hm'_empty:m' = 0 := of_eq_true (Eq.trans (congrFun' (congrArg Eq (Eq.trans (dite_cond_eq_true MeasurableSet.empty._simp_1) m_empty)) 0) (eq_self 0))hdecode: (n : ), MeasurableSet (⋃ i Encodable.decode₂ ι n, A i) := fun n => Encodable.iUnion_decode₂_cases MeasurableSet.empty fun i => hA ii:ιm' (A i) = m (A i) All goals completed! 🐙
theorem Measure.union_of_countablyAdditive (m : (A : Set X) MeasurableSet A ℝ≥0∞) (m_empty : m .empty = 0) (m_iUnion : {A : Set X} (hA : i, MeasurableSet (A i)) (_hAd : Pairwise (Disjoint on A)), m ( i, A i) (.iUnion hA) = ∑' i, m (A i) (hA i)) {A B : Set X} (hA : MeasurableSet A) (hB : MeasurableSet B) (hAB : Disjoint A B) : m (A B) (hA.union hB) = m A hA + m B hB := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A:Set XB:Set XhA:MeasurableSet AhB:MeasurableSet BhAB:Disjoint A Bm (A B) = m A hA + m B hB X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A:Set XB:Set XhA:MeasurableSet AhB:MeasurableSet BhAB:Disjoint A BC:Bool Set X := fun b => bif b then A else Bm (A B) = m A hA + m B hB X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A:Set XB:Set XhA:MeasurableSet AhB:MeasurableSet BhAB:Disjoint A BC:Bool Set X := fun b => bif b then A else BhC: (b : Bool), MeasurableSet (C b) := fun b => MeasurableSet.cond hA hBm (A B) = m A hA + m B hB X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A:Set XB:Set XhA:MeasurableSet AhB:MeasurableSet BhAB:Disjoint A BC:Bool Set X := fun b => bif b then A else BhC: (b : Bool), MeasurableSet (C b) := fun b => MeasurableSet.cond hA hBhCd:Pairwise (Disjoint on C) := (pairwise_on_bool fun x y h => Disjoint.symm h).mpr hABm (A B) = m A hA + m B hB All goals completed! 🐙
lemma Measure.accumulate_eq_sum_of_countablyAdditive (m : (A : Set X) MeasurableSet A ℝ≥0∞) (m_empty : m .empty = 0) (m_iUnion : {A : Set X} (hA : i, MeasurableSet (A i)) (_hAd : Pairwise (Disjoint on A)), m ( i, A i) (.iUnion hA) = ∑' i, m (A i) (hA i)) {A : Set X} (hA : i, MeasurableSet (A i)) (hAd : Pairwise (Disjoint on A)) (n : ) : m (accumulate A n) (MeasurableSet.accumulate hA n) = i Finset.range (n + 1), m (A i) (hA i) := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)n:m (accumulate A n) = i Finset.range (n + 1), m (A i) induction n with X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)m (accumulate A 0) = i Finset.range (0 + 1), m (A i) All goals completed! 🐙 X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)n:ih:m (accumulate A n) = i Finset.range (n + 1), m (A i) m (accumulate A (n + 1)) = i Finset.range (n + 1 + 1), m (A i) calc m (accumulate A (n + 1)) (MeasurableSet.accumulate hA (n + 1)) = m (accumulate A n) (MeasurableSet.accumulate hA n) + m (A (n + 1)) (hA (n + 1)) := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)n:ih:m (accumulate A n) = i Finset.range (n + 1), m (A i) m (accumulate A (n + 1)) = m (accumulate A n) + m (A (n + 1)) All goals completed! 🐙 _ = i Finset.range (n + 1), m (A i) (hA i) + m (A (n + 1)) (hA (n + 1)) := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)n:ih:m (accumulate A n) = i Finset.range (n + 1), m (A i) m (accumulate A n) + m (A (n + 1)) = i Finset.range (n + 1), m (A i) + m (A (n + 1)) All goals completed! 🐙 _ = i Finset.range (n + 2), m (A i) (hA i) := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hAd:Pairwise (Disjoint on A)n:ih:m (accumulate A n) = i Finset.range (n + 1), m (A i) i Finset.range (n + 1), m (A i) + m (A (n + 1)) = i Finset.range (n + 2), m (A i) All goals completed! 🐙
theorem Measure.iUnion_of_monotone_of_countablyAdditive (m : (A : Set X) MeasurableSet A ℝ≥0∞) (m_empty : m .empty = 0) (m_iUnion : {A : Set X} (hA : i, MeasurableSet (A i)) (_hAd : Pairwise (Disjoint on A)), m ( i, A i) (.iUnion hA) = ∑' i, m (A i) (hA i)) {A : Set X} (hA : i, MeasurableSet (A i)) (hmono : Monotone A) : m ( i, A i) (.iUnion hA) = i, m (A i) (hA i) := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone Am (⋃ i, A i) = i, m (A i) X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone AD: Set X := disjointed Am (⋃ i, A i) = i, m (A i) have hD : i, MeasurableSet (D i) := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone Am (⋃ i, A i) = i, m (A i) X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone AD: Set X := disjointed Ai:MeasurableSet (D i) X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone AD: Set X := disjointed Ai:MeasurableSet (disjointed A i) All goals completed! 🐙 calc m ( i, A i) (.iUnion hA) = m ( i, D i) (.iUnion hD) := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone AD: Set X := disjointed AhD: (i : ), MeasurableSet (D i) := fun i => id (disjointedRec (fun x j ht => MeasurableSet.diff ht (hA j)) (hA i))m (⋃ i, A i) = m (⋃ i, D i) All goals completed! 🐙 _ = ∑' i, m (D i) (hD i) := m_iUnion hD (disjoint_disjointed A) _ = n, i Finset.range (n + 1), m (D i) (hD i) := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone AD: Set X := disjointed AhD: (i : ), MeasurableSet (D i) := fun i => id (disjointedRec (fun x j ht => MeasurableSet.diff ht (hA j)) (hA i))∑' (i : ), m (D i) = n, i Finset.range (n + 1), m (D i) All goals completed! 🐙 _ = n, m (accumulate D n) (MeasurableSet.accumulate hD n) := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone AD: Set X := disjointed AhD: (i : ), MeasurableSet (D i) := fun i => id (disjointedRec (fun x j ht => MeasurableSet.diff ht (hA j)) (hA i)) n, i Finset.range (n + 1), m (D i) = n, m (accumulate D n) X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone AD: Set X := disjointed AhD: (i : ), MeasurableSet (D i) := fun i => id (disjointedRec (fun x j ht => MeasurableSet.diff ht (hA j)) (hA i))n: i Finset.range (n + 1), m (D i) = m (accumulate D n) X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone AD: Set X := disjointed AhD: (i : ), MeasurableSet (D i) := fun i => id (disjointedRec (fun x j ht => MeasurableSet.diff ht (hA j)) (hA i))n:m (accumulate D n) = i Finset.range (n + 1), m (D i) All goals completed! 🐙 _ = n, m (A n) (hA n) := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone AD: Set X := disjointed AhD: (i : ), MeasurableSet (D i) := fun i => id (disjointedRec (fun x j ht => MeasurableSet.diff ht (hA j)) (hA i)) n, m (accumulate D n) = n, m (A n) X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone AD: Set X := disjointed AhD: (i : ), MeasurableSet (D i) := fun i => id (disjointedRec (fun x j ht => MeasurableSet.diff ht (hA j)) (hA i))n:m (accumulate D n) = m (A n) have hacc' : accumulate D n = A n := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone AD: Set X := disjointed AhD: (i : ), MeasurableSet (D i) := fun i => id (disjointedRec (fun x j ht => MeasurableSet.diff ht (hA j)) (hA i)) n, m (accumulate D n) = n, m (A n) calc accumulate D n = partialSups (disjointed A) n := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone AD: Set X := disjointed AhD: (i : ), MeasurableSet (D i) := fun i => id (disjointedRec (fun x j ht => MeasurableSet.diff ht (hA j)) (hA i))n:accumulate D n = (partialSups (disjointed A)) n All goals completed! 🐙 _ = partialSups A n := congrArg (fun f => f n) (partialSups_disjointed A) _ = A n := congrArg (fun f => f n) (Monotone.partialSups_eq hmono) All goals completed! 🐙
/-- Construct a `Measure` from a countably additive function on measurable sets. Since the current `Measure` structure also stores continuity from below for monotone sequences, that property is derived from countable additivity. -/ def Measure.ofCountablyAdditive (m : (A : Set X) MeasurableSet A ℝ≥0∞) (m_empty : m .empty = 0) (m_iUnion : {A : Set X} (hA : i, MeasurableSet (A i)) (_hAd : Pairwise (Disjoint on A)), m ( i, A i) (.iUnion hA) = ∑' i, m (A i) (hA i)) : Measure X where toFun := m empty' := m_empty union' := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) {A B : Set X} (hA : MeasurableSet A) (hB : MeasurableSet B), Disjoint A B m (A B) = m A hA + m B hB intro A X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A:Set XB:Set X (hA : MeasurableSet A) (hB : MeasurableSet B), Disjoint A B m (A B) = m A hA + m B hB X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A:Set XB:Set XhA:MeasurableSet A (hB : MeasurableSet B), Disjoint A B m (A B) = m A hA + m B hB X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A:Set XB:Set XhA:MeasurableSet AhB:MeasurableSet BDisjoint A B m (A B) = m A hA + m B hB X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A:Set XB:Set XhA:MeasurableSet AhB:MeasurableSet BhAB:Disjoint A Bm (A B) = m A hA + m B hB All goals completed! 🐙 iUnion_of_monotone' := X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) {A : Set X} (hA : (i : ), MeasurableSet (A i)), Monotone A m (⋃ i, A i) = i, m (A i) intro A X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)Monotone A m (⋃ i, A i) = i, m (A i) X:Type u_1inst✝:MeasurableSpace Xm:(A : Set X) MeasurableSet A ℝ≥0∞m_empty:m = 0m_iUnion: {A : Set X} (hA : (i : ), MeasurableSet (A i)), Pairwise (Disjoint on A) m (⋃ i, A i) = ∑' (i : ), m (A i) A: Set XhA: (i : ), MeasurableSet (A i)hmono:Monotone Am (⋃ i, A i) = i, m (A i) All goals completed! 🐙