測度論と積分

2.2. 可測集合🔗

定義.

部分集合 A \subseteq \mathbb{R}(ボレル)可測 であるという概念を、 次のように帰納的に定義する。

  1. 任意の a \in \mathbb{R} に対して、半直線 [a,\infty) は可測である。

  2. 空集合 \emptyset は可測である。

  3. A が可測ならば、その補集合 A^c も可測である。

  4. A_0, A_1, \dots が可測ならば、\bigcup_{n \in \mathbb{N}} A_n も可測である。

Lean code
inductive MeasurableSet : Set Prop | ici' : a : , MeasurableSet (Ici a) | empty' : MeasurableSet | compl' : A, MeasurableSet A MeasurableSet A | iUnion' : A : Set , ( n, MeasurableSet (A n)) MeasurableSet ( i, A i)
補題.

空集合と全体集合 \mathbb{R} は可測である。

Lean code
@[simp] theorem MeasurableSet.empty : MeasurableSet ( : Set ) := MeasurableSet.empty'
theorem MeasurableSet.univ : MeasurableSet (Set.univ : Set ) := MeasurableSet Set.univ All goals completed! 🐙
補題.

可測集合の可算和と可算共通部分は可測である。

Lean code
theorem MeasurableSet.iUnion (A : Set ) (hA : n, MeasurableSet (A n)) : MeasurableSet ( i, A i) := MeasurableSet.iUnion' A hA
theorem MeasurableSet.iInter {A : Set } (hA : n, MeasurableSet (A n)) : MeasurableSet ( n, A n) := A: Set hA: (n : ), MeasurableSet (A n)MeasurableSet (⋂ n, A n) have hEq : ( n, A n) = ( n, (A n)) := A: Set hA: (n : ), MeasurableSet (A n)MeasurableSet (⋂ n, A n) A: Set hA: (n : ), MeasurableSet (A n)x:x n, A n x (⋃ n, (A n)) All goals completed! 🐙 A: Set hA: (n : ), MeasurableSet (A n)hEq: n, A n = (⋃ n, (A n)) := ext fun x => of_eq_true (Eq.trans (congr (congrArg Iff mem_iInter._simp_1) (Eq.trans (congrFun' (congrArg Membership.mem (Eq.trans (compl_iUnion fun i => (A i)) (congrArg Set.iInter (funext fun i => compl_compl (A i))))) x) mem_iInter._simp_1)) (iff_self (∀ (i : ), x A i)))MeasurableSet (⋃ n, (A n)) All goals completed! 🐙
補題.

可測集合の和集合、補集合、共通部分は可測である。

Lean code
theorem MeasurableSet.union {A₁ A₂ : Set } (h₁ : MeasurableSet A₁) (h₂ : MeasurableSet A₂) : MeasurableSet (A₁ A₂) := A₁:Set A₂:Set h₁:MeasurableSet A₁h₂:MeasurableSet A₂MeasurableSet (A₁ A₂) A₁:Set A₂:Set h₁:MeasurableSet A₁h₂:MeasurableSet A₂MeasurableSet (⋃ b, bif b then A₁ else A₂) All goals completed! 🐙
theorem MeasurableSet.compl {A : Set } (hA : MeasurableSet A) : MeasurableSet A := MeasurableSet.compl' A hA
theorem MeasurableSet.inter {A₁ A₂ : Set } (h₁ : MeasurableSet A₁) (h₂ : MeasurableSet A₂) : MeasurableSet (A₁ A₂) := A₁:Set A₂:Set h₁:MeasurableSet A₁h₂:MeasurableSet A₂MeasurableSet (A₁ A₂) A₁:Set A₂:Set h₁:MeasurableSet A₁h₂:MeasurableSet A₂MeasurableSet (A₁ A₂) All goals completed! 🐙
補題.

区間 [a,\infty), (-\infty,a), (a,\infty), (-\infty,a], (a,b], [a,b), [a,b], (a,b) および一点集合 \{a\} は可測である。

Lean code
theorem measurableSet_Ici (a : ) : MeasurableSet (Set.Ici a) := a:MeasurableSet (Ici a) All goals completed! 🐙
theorem measurableSet_Iio (a : ) : MeasurableSet (Set.Iio a) := a:MeasurableSet (Iio a) a:MeasurableSet (Ici a) a:MeasurableSet (Ici a) All goals completed! 🐙
theorem measurableSet_Ioi (a : ) : MeasurableSet (Set.Ioi a) := a:MeasurableSet (Ioi a) a:A:Set haA:A Ioi ahAc:A.CountablehAU: i A, Ioi i = i Ioi a, Ioi iMeasurableSet (Ioi a) have : Set.Ioi a = b A, Set.Ici b := a:MeasurableSet (Ioi a) refine Subset.antisymm ?_ <| iUnion₂_subset fun b hb a:A:Set haA:A Ioi ahAc:A.CountablehAU: i A, Ioi i = i Ioi a, Ioi ib:hb:b AIci b Ioi a All goals completed! 🐙 a:A:Set haA:A Ioi ahAc:A.CountablehAU: i A, Ioi i = i Ioi a, Ioi iIoi a i A, Ioi i a:A:Set haA:A Ioi ahAc:A.CountablehAU: i A, Ioi i = i Ioi a, Ioi i (x : ), a < x i, a < i i < x intro b a:A:Set haA:A Ioi ahAc:A.CountablehAU: i A, Ioi i = i Ioi a, Ioi ib:hab:a < b i, a < i i < b All goals completed! 🐙 a:A:Set haA:A Ioi ahAc:A.CountablehAU: i A, Ioi i = i Ioi a, Ioi ithis:Ioi a = b A, Ici b := Subset.antisymm (Subset.trans (Eq.mpr (id (Eq.trans (congrArg (Subset (Ioi a)) (Eq.trans hAU (congrArg iUnion (funext fun i => iUnion_congr_Prop (Iff.of_eq measurableSet_Ioi._simp_1) fun x => Eq.refl (Ioi i))))) (forall_congr fun x => implies_congr measurableSet_Ioi._simp_1 (Eq.trans measurableSet_Ioi._simp_2 (congrArg Exists (funext fun i => Eq.trans measurableSet_Ioi._simp_2 (Eq.trans (propext (exists_prop_congr (fun h => Iff.of_eq measurableSet_Ioi._simp_1) (Iff.of_eq (Eq.refl (a < i))))) measurableSet_Ioi._simp_3))))))) fun b hab => exists_between hab) (iUnion₂_mono fun x x_1 => Ioi_subset_Ici_self)) (iUnion₂_subset fun b hb => measurableSet_Ioi._proof_1 a A haA b hb)MeasurableSet (⋃ b A, Ici b) a:A:Set haA:A Ioi ahAc:A.CountablehAU: i A, Ioi i = i Ioi a, Ioi ithis:Ioi a = b A, Ici b := Subset.antisymm (Subset.trans (Eq.mpr (id (Eq.trans (congrArg (Subset (Ioi a)) (Eq.trans hAU (congrArg iUnion (funext fun i => iUnion_congr_Prop (Iff.of_eq measurableSet_Ioi._simp_1) fun x => Eq.refl (Ioi i))))) (forall_congr fun x => implies_congr measurableSet_Ioi._simp_1 (Eq.trans measurableSet_Ioi._simp_2 (congrArg Exists (funext fun i => Eq.trans measurableSet_Ioi._simp_2 (Eq.trans (propext (exists_prop_congr (fun h => Iff.of_eq measurableSet_Ioi._simp_1) (Iff.of_eq (Eq.refl (a < i))))) measurableSet_Ioi._simp_3))))))) fun b hab => exists_between hab) (iUnion₂_mono fun x x_1 => Ioi_subset_Ici_self)) (iUnion₂_subset fun b hb => measurableSet_Ioi._proof_1 a A haA b hb) b A, MeasurableSet (Ici b) intro a a✝:A:Set haA:A Ioi ahAc:A.CountablehAU: i A, Ioi i = i Ioi a, Ioi ithis:Ioi a = b A, Ici b := Subset.antisymm (Subset.trans (Eq.mpr (id (Eq.trans (congrArg (Subset (Ioi a)) (Eq.trans hAU (congrArg iUnion (funext fun i => iUnion_congr_Prop (Iff.of_eq measurableSet_Ioi._simp_1) fun x => Eq.refl (Ioi i))))) (forall_congr fun x => implies_congr measurableSet_Ioi._simp_1 (Eq.trans measurableSet_Ioi._simp_2 (congrArg Exists (funext fun i => Eq.trans measurableSet_Ioi._simp_2 (Eq.trans (propext (exists_prop_congr (fun h => Iff.of_eq measurableSet_Ioi._simp_1) (Iff.of_eq (Eq.refl (a < i))))) measurableSet_Ioi._simp_3))))))) fun b hab => exists_between hab) (iUnion₂_mono fun x x_1 => Ioi_subset_Ici_self)) (iUnion₂_subset fun b hb => measurableSet_Ioi._proof_1 a A haA b hb)a:ha:a AMeasurableSet (Ici a) All goals completed! 🐙
theorem measurableSet_Iic (a : ) : MeasurableSet (Set.Iic a) := a:MeasurableSet (Iic a) a:MeasurableSet (Ioi a) a:MeasurableSet (Ioi a) All goals completed! 🐙
theorem measurableSet_Ioc (a b : ) : MeasurableSet (Set.Ioc a b) := a:b:MeasurableSet (Ioc a b) have : Set.Ioc a b = Set.Ioi a Set.Iic b := a:b:MeasurableSet (Ioc a b) All goals completed! 🐙 a:b:this:Ioc a b = Ioi a Iic b := measurableSet_Ioc._proof_1 a bMeasurableSet (Ioi a Iic b) All goals completed! 🐙
theorem measurableSet_Ico (a b : ) : MeasurableSet (Set.Ico a b) := a:b:MeasurableSet (Ico a b) have : Set.Ico a b = Set.Ici a Set.Iio b := a:b:MeasurableSet (Ico a b) All goals completed! 🐙 a:b:this:Ico a b = Ici a Iio b := measurableSet_Ico._proof_1 a bMeasurableSet (Ici a Iio b) All goals completed! 🐙
theorem measurableSet_Icc (a b : ) : MeasurableSet (Set.Icc a b) := a:b:MeasurableSet (Icc a b) have : Set.Icc a b = Set.Iic b Set.Ici a := a:b:MeasurableSet (Icc a b) All goals completed! 🐙 a:b:this:Icc a b = Iic b Ici a := measurableSet_Icc._proof_1 a bMeasurableSet (Iic b Ici a) All goals completed! 🐙
theorem measurableSet_Ioo (a b : ) : MeasurableSet (Set.Ioo a b) := a:b:MeasurableSet (Ioo a b) have : Set.Ioo a b = Set.Ioi a Set.Iio b := a:b:MeasurableSet (Ioo a b) All goals completed! 🐙 a:b:this:Ioo a b = Ioi a Iio b := measurableSet_Ioo._proof_1 a bMeasurableSet (Ioi a Iio b) All goals completed! 🐙
theorem measurableSet_singleton (a : ) : MeasurableSet ({a} : Set ) := a:MeasurableSet {a} have : ({a} : Set ) = Set.Iic a Set.Ici a := a:MeasurableSet {a} All goals completed! 🐙 a:this:{a} = Iic a Ici a := measurableSet_singleton._proof_1 aMeasurableSet (Iic a Ici a) All goals completed! 🐙