-
Notifications
You must be signed in to change notification settings - Fork 297
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Merged by Bors] - feat(analysis/special_functions/pow): prove measurability of rpow for ennreal #5026
Conversation
I removed all the subtypes and use only ite. |
begin | ||
refine ennreal.measurable_of_measurable_nnreal_prod _ _, | ||
{ change measurable (λ (p : ℝ≥0 × ℝ), ↑(p.fst) ^ p.snd), | ||
simp_rw ennreal.coe_rpow_def, | ||
refine measurable.ite _ measurable_const nnreal.measurable_rpow.ennreal_coe, | ||
exact is_measurable.inter (measurable_fst (is_measurable_singleton 0)) | ||
(measurable_snd is_measurable_Iio), }, | ||
{ change measurable (λ (x : ℝ), (⊤ : ennreal) ^ x), | ||
simp_rw ennreal.top_rpow_def, | ||
refine measurable.ite is_measurable_Ioi measurable_const _, | ||
exact measurable.ite (is_measurable_singleton 0) measurable_const measurable_const, }, | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you want, you can simplify the proof further like this: (but feel free to keep the old version if you think that is more readable)
begin | |
refine ennreal.measurable_of_measurable_nnreal_prod _ _, | |
{ change measurable (λ (p : ℝ≥0 × ℝ), ↑(p.fst) ^ p.snd), | |
simp_rw ennreal.coe_rpow_def, | |
refine measurable.ite _ measurable_const nnreal.measurable_rpow.ennreal_coe, | |
exact is_measurable.inter (measurable_fst (is_measurable_singleton 0)) | |
(measurable_snd is_measurable_Iio), }, | |
{ change measurable (λ (x : ℝ), (⊤ : ennreal) ^ x), | |
simp_rw ennreal.top_rpow_def, | |
refine measurable.ite is_measurable_Ioi measurable_const _, | |
exact measurable.ite (is_measurable_singleton 0) measurable_const measurable_const, }, | |
end | |
begin | |
refine ennreal.measurable_of_measurable_nnreal_prod _ _, | |
{ simp_rw ennreal.coe_rpow_def, | |
refine measurable_const.ite _ nnreal.measurable_rpow.ennreal_coe, | |
exact (measurable_fst (is_measurable_singleton 0)).inter (measurable_snd is_measurable_Iio), }, | |
{ simp_rw ennreal.top_rpow_def, | |
refine measurable_const.ite is_measurable_Ioi _, | |
exact measurable_const.ite (is_measurable_singleton 0) measurable_const, }, | |
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't like the fact that this way to write measurable.ite does not respect the order of the arguments. But that lemma was so close to measurable.piecewise that I did not want to call it is_measurable.ite . Maybe I should?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But if I call it is_measurable.ite it suggests that the result is an is_measurable statement, so I won't change it. I will leave those measurable.ite _ _ _
as they are (I removed the change
lines though).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the current name better than is_measurable.ite
. It seems fine to not use the projection notation here.
Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>
LGTM bors merge |
… ennreal (#5026) Prove measurability of rpow for an ennreal argument. Also shorten the proof in the real case. Co-authored-by: Rémy Degenne <remydegenne@gmail.com>
Pull request successfully merged into master. Build succeeded: |
Prove measurability of rpow for an ennreal argument.
Also shorten the proof in the real case.