4.2. 測度
4.2.1. 測度
X を可測空間とする。
X 上の 測度 とは、各可測集合 A \subseteq X に [0,\infty] の値を対応させる関数であって、次を満たすものをいう。
-
\mu(\emptyset) = 0である。 -
AとBが可測で交わりを持たなければ、\mu(A \cup B) = \mu(A) + \mu(B)である。 -
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) が与えられていて、次を満たすとする。
-
\mu(\emptyset) = 0である。 -
互いに交わらない可測集合の列
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 0⊢ m (⋃ 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 s⊢ m' 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 i⊢ m (⋃ 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 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 BC:Bool → Set X := fun b => bif b then A else 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 BC:Bool → Set X := fun b => bif b then A else BhC:∀ (b : Bool), MeasurableSet (C b) := fun b => MeasurableSet.cond hA hB⊢ 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 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 hAB⊢ m (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 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 AD:ℕ → Set X := disjointed A⊢ m (⋃ 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 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 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 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 BhAB:Disjoint A B⊢ m (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 A⊢ m (⋃ i, A i) ⋯ = ⨆ i, m (A i) ⋯
All goals completed! 🐙