@@ -3997,6 +3997,165 @@ Proof
39973997 MATCH_MP_TAC hyperbola_lemma4 >> art [] ] ]
39983998QED
39993999
4000+ (* ------------------------------------------------------------------------- *)
4001+ (* More Measurability Results *)
4002+ (* ------------------------------------------------------------------------- *)
4003+
4004+ (*
4005+ These are the results from my own accumulated library for borel measurable functions
4006+ that I believe stand on their own as something useful for future users.
4007+ - Jared Yeager
4008+ *)
4009+
4010+ (* This first batch of results has to do with sets derived from borel measurable
4011+ functions being measurable sets
4012+ *)
4013+
4014+ Theorem in_borel_measurable_ge_imp:
4015+ ∀a f. sigma_algebra a ∧ f ∈ borel_measurable a ⇒
4016+ ∀c. {x | c ≤ f x} ∩ space a ∈ subsets a
4017+ Proof
4018+ rw[] >> drule_all_then mp_tac $ cj 2 $ SRULE [AND_IMP_INTRO] $ iffLR in_borel_measurable_ge >>
4019+ rw[INTER_DEF] >> pop_assum $ qspec_then ‘c’ mp_tac >>
4020+ qmatch_goalsub_abbrev_tac ‘s ∈ _ ⇒ t ∈ _’ >> ‘s = t’ suffices_by simp[] >>
4021+ simp[EXTENSION,Abbr ‘s’,Abbr ‘t’] >> metis_tac[]
4022+ QED
4023+
4024+ Theorem in_borel_measurable_gt_imp:
4025+ ∀a f. sigma_algebra a ∧ f ∈ borel_measurable a ⇒
4026+ ∀c. {x | c < f x} ∩ space a ∈ subsets a
4027+ Proof
4028+ rw[] >> drule_all_then mp_tac $ cj 2 $ SRULE [AND_IMP_INTRO] $ iffLR in_borel_measurable_gr >>
4029+ rw[INTER_DEF] >> pop_assum $ qspec_then ‘c’ mp_tac >>
4030+ qmatch_goalsub_abbrev_tac ‘s ∈ _ ⇒ t ∈ _’ >> ‘s = t’ suffices_by simp[] >>
4031+ simp[EXTENSION,Abbr ‘s’,Abbr ‘t’] >> metis_tac[]
4032+ QED
4033+
4034+ Theorem in_borel_measurable_le_imp:
4035+ ∀a f. sigma_algebra a ∧ f ∈ borel_measurable a ⇒
4036+ ∀c. {x | f x ≤ c} ∩ space a ∈ subsets a
4037+ Proof
4038+ rw[] >> drule_all_then mp_tac $ cj 2 $ SRULE [AND_IMP_INTRO] $ iffLR in_borel_measurable_le >>
4039+ rw[INTER_DEF] >> pop_assum $ qspec_then ‘c’ mp_tac >>
4040+ qmatch_goalsub_abbrev_tac ‘s ∈ _ ⇒ t ∈ _’ >> ‘s = t’ suffices_by simp[] >>
4041+ simp[EXTENSION,Abbr ‘s’,Abbr ‘t’] >> metis_tac[]
4042+ QED
4043+
4044+ Theorem in_borel_measurable_lt_imp:
4045+ ∀a f. sigma_algebra a ∧ f ∈ borel_measurable a ⇒
4046+ ∀c. {x | f x < c} ∩ space a ∈ subsets a
4047+ Proof
4048+ rw[] >> drule_all_then mp_tac $ cj 2 $ SRULE [AND_IMP_INTRO] $ iffLR in_borel_measurable_less >>
4049+ rw[INTER_DEF] >> pop_assum $ qspec_then ‘c’ mp_tac >>
4050+ qmatch_goalsub_abbrev_tac ‘s ∈ _ ⇒ t ∈ _’ >> ‘s = t’ suffices_by simp[] >>
4051+ simp[EXTENSION,Abbr ‘s’,Abbr ‘t’] >> metis_tac[]
4052+ QED
4053+
4054+ Theorem in_borel_measurable_le2_imp:
4055+ ∀a f g. sigma_algebra a ∧ f ∈ borel_measurable a ∧ g ∈ borel_measurable a ⇒
4056+ {x | f x ≤ g x} ∩ space a ∈ subsets a
4057+ Proof
4058+ rw[] >> qspecl_then [‘a’,‘f’,‘g’] mp_tac in_borel_measurable_le2 >> simp[INTER_DEF] >>
4059+ qmatch_goalsub_abbrev_tac ‘s ∈ _ ⇒ t ∈ _’ >> ‘s = t’ suffices_by simp[] >>
4060+ simp[EXTENSION,Abbr ‘s’,Abbr ‘t’] >> metis_tac[]
4061+ QED
4062+
4063+ Theorem in_borel_measurable_lt2_imp:
4064+ ∀a f g. sigma_algebra a ∧ f ∈ borel_measurable a ∧ g ∈ borel_measurable a ⇒
4065+ {x | f x < g x} ∩ space a ∈ subsets a
4066+ Proof
4067+ rw[] >> qspecl_then [‘a’,‘f’,‘g’] mp_tac in_borel_measurable_lt2 >> simp[INTER_DEF] >>
4068+ qmatch_goalsub_abbrev_tac ‘s ∈ _ ⇒ t ∈ _’ >> ‘s = t’ suffices_by simp[] >>
4069+ simp[EXTENSION,Abbr ‘s’,Abbr ‘t’] >> metis_tac[]
4070+ QED
4071+
4072+ (* This second batch of results has to do with functions being borel measurable *)
4073+
4074+ (* name conflict *)
4075+ Theorem in_borel_measurable_ainv':
4076+ ∀a f g. sigma_algebra a ∧ f ∈ borel_measurable a ∧
4077+ (∀x. x ∈ space a ⇒ g x = -f x) ⇒ g ∈ borel_measurable a
4078+ Proof
4079+ rw[] >> irule $ INST_TYPE [“:β”|->“:γ”] IN_MEASURABLE_COMP >>
4080+ qexistsl [‘borel’,‘f’,‘λx. -x’] >> simp[] >>
4081+ irule in_borel_measurable_mul >> simp[sigma_algebra_borel,space_borel] >>
4082+ qexistsl [‘λx. -1r’,‘I’] >>
4083+ simp[sigma_algebra_borel,MEASURABLE_I,borel_measurable_sets,borel_measurable_const]
4084+ QED
4085+
4086+ Theorem in_borel_measurable_abs:
4087+ ∀a f g. sigma_algebra a ∧ f ∈ borel_measurable a ∧
4088+ (∀x. x ∈ space a ⇒ g x = abs (f x)) ⇒ g ∈ borel_measurable a
4089+ Proof
4090+ rw[] >> irule $ INST_TYPE [“:β”|->“:γ”] IN_MEASURABLE_COMP >>
4091+ qexistsl [‘borel’,‘f’,‘abs’] >> simp[] >>
4092+ ‘abs = λr:real. max (I r) ((λrr. -rr) r)’ by (
4093+ simp[FUN_EQ_THM,abs,max_def] >> strip_tac >> Cases_on ‘0 ≤ r’ >> simp[]
4094+ >- (Cases_on ‘r = 0 ’ >> simp[] >> ‘0 < r’ by simp[REAL_LT_LE] >>
4095+ ‘¬(r ≤ -r)’ suffices_by simp[] >> simp[REAL_NOT_LE])
4096+ >- (‘r ≤ -r’ suffices_by simp[] >> gs[REAL_NOT_LE])) >>
4097+ pop_assum SUBST1_TAC >> irule in_borel_measurable_max >>
4098+ simp[sigma_algebra_borel,MEASURABLE_I] >>
4099+ irule in_borel_measurable_ainv' >> simp[sigma_algebra_borel] >>
4100+ qexists ‘I’ >> simp[sigma_algebra_borel,MEASURABLE_I]
4101+ QED
4102+
4103+ Theorem in_borel_measurable_sum:
4104+ ∀a f g s. FINITE s ∧ sigma_algebra a ∧ (∀i. i ∈ s ⇒ f i ∈ borel_measurable a) ∧
4105+ (∀x. x ∈ space a ⇒ g x = REAL_SUM_IMAGE (λi. f i x) s) ⇒ g ∈ borel_measurable a
4106+ Proof
4107+ simp[Once $ GSYM AND_IMP_INTRO] >> rpt gen_tac >> map_every qid_spec_tac [‘f’,‘g’] >>
4108+ simp[RIGHT_FORALL_IMP_THM] >> Induct_on ‘s’ >> rw[]
4109+ >- (irule in_borel_measurable_const >> simp[] >> qexists ‘0 ’ >> simp[]) >>
4110+ gs[REAL_SUM_IMAGE_THM] >> irule in_borel_measurable_add >> simp[] >>
4111+ qexistsl [‘f e’,‘λx. REAL_SUM_IMAGE (λi. f i x) (s DELETE e)’] >> simp[] >>
4112+ last_x_assum irule >> qexists ‘f’ >> simp[DELETE_NON_ELEMENT_RWT]
4113+ QED
4114+
4115+ Theorem in_borel_measurable_inv:
4116+ ∀a f g. sigma_algebra a ∧ f ∈ borel_measurable a ∧
4117+ (∀x. x ∈ space a ⇒ g x = (f x)⁻¹) ⇒ g ∈ borel_measurable a
4118+ Proof
4119+ rw[] >> irule $ INST_TYPE [“:β”|->“:γ”] IN_MEASURABLE_COMP >>
4120+ qexistsl [‘borel’,‘f’,‘λx. x⁻¹’] >> simp[] >>
4121+ simp[sigma_algebra_borel,in_borel_measurable_le,FUNSET,space_borel] >>
4122+ qx_gen_tac ‘c’ >> Cases_on ‘c < 0 ’
4123+ >- (‘{x | x⁻¹ ≤ c} = {x | c⁻¹ ≤ x ∧ x < 0 }’ suffices_by
4124+ simp[borel_measurable_sets,Excl " RMUL_LEQNORM" ] >>
4125+ rw[EXTENSION] >> Cases_on ‘x < 0 ’ >> simp[REAL_NEG_NZ,nonzerop_EQ1_I] >>
4126+ gs[REAL_NOT_LT,REAL_NOT_LE] >> irule REAL_LTE_TRANS >>
4127+ qexists ‘0 ’ >> simp[]) >>
4128+ reverse $ gs[REAL_NOT_LT,Once REAL_LE_LT]
4129+ >- (‘{x | x⁻¹ ≤ 0r} = {x | x ≤ 0 }’ suffices_by simp[borel_measurable_sets] >>
4130+ rw[EXTENSION,REAL_LE_LT]) >>
4131+ ‘{x | x⁻¹ ≤ c} = {x | x ≤ 0 } ∪ {x | c⁻¹ ≤ x}’ suffices_by (
4132+ disch_then SUBST1_TAC >> irule SIGMA_ALGEBRA_UNION >>
4133+ simp[sigma_algebra_borel,borel_measurable_sets,Excl " RMUL_LEQNORM" ]) >>
4134+ rw[EXTENSION] >> Cases_on ‘x ≤ 0 ’ >> simp[]
4135+ >- (irule REAL_LE_TRANS >> qexists ‘0 ’ >> gs[REAL_LE_LT]) >>
4136+ gs[REAL_NOT_LE] >> simp[REAL_POS_NZ,nonzerop_EQ1_I]
4137+ QED
4138+
4139+ Theorem in_borel_measurable_div:
4140+ ∀a f g h. sigma_algebra a ∧ f ∈ borel_measurable a ∧ g ∈ borel_measurable a ∧
4141+ (∀x. x ∈ space a ⇒ h x = f x / g x) ⇒ h ∈ borel_measurable a
4142+ Proof
4143+ rw[] >> irule in_borel_measurable_mul >> simp[real_div] >>
4144+ qexistsl [‘f’,‘λx. (g x)⁻¹’] >> simp[] >>
4145+ irule in_borel_measurable_inv >> simp[] >> qexists ‘g’ >> simp[]
4146+ QED
4147+
4148+ Theorem in_borel_measurable_pow:
4149+ ∀a n f g.
4150+ sigma_algebra a ∧ f ∈ borel_measurable a ∧
4151+ (∀x. x ∈ space a ⇒ g x = (f x) pow n) ⇒
4152+ g ∈ borel_measurable a
4153+ Proof
4154+ Induct_on ‘n’ >> rw[pow] >- (metis_tac[in_borel_measurable_const]) >>
4155+ irule in_borel_measurable_mul >> simp[] >> qexistsl [‘f’,‘λx. f x pow n’] >>
4156+ simp[] >> last_x_assum $ irule_at Any >> simp[] >> qexists ‘f’ >> simp[]
4157+ QED
4158+
40004159(* References:
40014160
40024161 [1] Schilling, R.L.: Measures, Integrals and Martingales (Second Edition).
0 commit comments