-
Notifications
You must be signed in to change notification settings - Fork 64
tentative proof of Radon-Nikodym #818
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
Conversation
5ba0046 to
0d8a631
Compare
c4c5f80 to
038b28f
Compare
245e696 to
ea73299
Compare
ea73299 to
3a9883b
Compare
3a9883b to
87263bc
Compare
9b1dc60 to
5d93a32
Compare
0b77ec7 to
4d1c934
Compare
|
ping @zstone1 (the remaining errors in the CI are not from this PR) |
|
Sorry for the delay, I expect to have some time for a review this weekend. |
zstone1
left a comment
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.
It seems like a pretty faithful formalization of the textbook proof. I'm happy with the overall structure, and putting all these one-time use definitions into a module is a good idea for sure. I found one moderate simplification regarding fRN + eps. Basically shuffling the int fRN x + eps to int fRN x + int eps before the integrableP saves some headache. There are probably a few other similar proof improvements in the proof of radon_nikodym_finite, but I didn't find any trivial ones.
theories/charge.v
Outdated
| + apply/integrableP; split. | ||
| suff: measurable_fun setT (fun x => fRN x + epsRN%:num%:E). | ||
| exact: measurable_funS. | ||
| by apply: emeasurable_funD => //; exact: measurable_fun_fRN. | ||
| apply: (@le_lt_trans _ _ (\int[mu]_(x in \bigcup_k H k) `|fRN x| + | ||
| \int[mu]_(x in \bigcup_k H k)`| epsRN%:num%:E |)). | ||
| rewrite -(integralD mUH); last 2 first. | ||
| * apply: integrable_abse; apply/integrableP; split. | ||
| exact: measurable_funS measurable_fun_fRN. | ||
| rewrite (le_lt_trans _ int_fRN_lty)// subset_integral//. | ||
| by apply: measurableT_comp => //; exact: measurable_fun_fRN. | ||
| * apply: integrable_abse; apply/integrableP; split => //. | ||
| by rewrite integral_cst//= lte_mul_pinfty// ltey_eq fin_num_measure. | ||
| apply: ge0_le_integral => //. | ||
| * apply: measurableT_comp => //; apply: emeasurable_funD => //. | ||
| exact: measurable_funS measurable_fun_fRN. | ||
| * apply: emeasurable_funD => //; apply: measurableT_comp => //. | ||
| exact: measurable_funS measurable_fun_fRN. | ||
| * by move=> x _; exact: lee_abs_add. | ||
| apply: lte_add_pinfty. | ||
| rewrite (le_lt_trans _ int_fRN_lty)// subset_integral//. | ||
| by apply: measurableT_comp => //; exact: measurable_fun_fRN. | ||
| by rewrite integral_cst//= lte_mul_pinfty// ltey_eq fin_num_measure. |
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.
| + apply/integrableP; split. | |
| suff: measurable_fun setT (fun x => fRN x + epsRN%:num%:E). | |
| exact: measurable_funS. | |
| by apply: emeasurable_funD => //; exact: measurable_fun_fRN. | |
| apply: (@le_lt_trans _ _ (\int[mu]_(x in \bigcup_k H k) `|fRN x| + | |
| \int[mu]_(x in \bigcup_k H k)`| epsRN%:num%:E |)). | |
| rewrite -(integralD mUH); last 2 first. | |
| * apply: integrable_abse; apply/integrableP; split. | |
| exact: measurable_funS measurable_fun_fRN. | |
| rewrite (le_lt_trans _ int_fRN_lty)// subset_integral//. | |
| by apply: measurableT_comp => //; exact: measurable_fun_fRN. | |
| * apply: integrable_abse; apply/integrableP; split => //. | |
| by rewrite integral_cst//= lte_mul_pinfty// ltey_eq fin_num_measure. | |
| apply: ge0_le_integral => //. | |
| * apply: measurableT_comp => //; apply: emeasurable_funD => //. | |
| exact: measurable_funS measurable_fun_fRN. | |
| * apply: emeasurable_funD => //; apply: measurableT_comp => //. | |
| exact: measurable_funS measurable_fun_fRN. | |
| * by move=> x _; exact: lee_abs_add. | |
| apply: lte_add_pinfty. | |
| rewrite (le_lt_trans _ int_fRN_lty)// subset_integral//. | |
| by apply: measurableT_comp => //; exact: measurable_fun_fRN. | |
| by rewrite integral_cst//= lte_mul_pinfty// ltey_eq fin_num_measure. | |
| + apply: integrableD => //. | |
| (apply: integrableS; first exact: measurableT) => //; apply /integrableP. | |
| by split; [exact: measurable_fun_fRN | exact: int_fRN_lty]. | |
| apply/integrableP; split; rewrite // integral_cst // lte_mul_pinfty //. | |
| by rewrite ltey_eq fin_num_measure. |
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.
Oh! Thanks. I committed your suggestion after a rebase: 0a13408
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.
There are probably a few other similar proof improvements in the proof of radon_nikodym_finite, but I didn't find any trivial ones.
I still have to take some time to look for more simplifications.
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.
Really nice. Just two small remarks (in addition to @zstone1's).
theories/charge.v
Outdated
| exists2 f : T -> \bar R, mu.-integrable [set: T] f & | ||
| forall E, measurable E -> nu E = \int[mu]_(x in E) f x. |
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.
Should we extract this existential and have a function Randon_Nikodym mu nu that is mu.-integrable and such that:
forall E, measurable E -> nu E = \int[mu]_(x in E) Radon_Nikodym mu nu x.?
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.
That would indeed look better. Here is a first try: 04dfc2c
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.
Indeed it looks better...
I guess the code would be slightly shorter if you used the same Theorem Radon_Nikodym as before (renaming it) but extracted the witness out of it, rather than having both a long definition and proof for extracting the existential.
3ee3745 to
04dfc2c
Compare
Co-authored-by: IshiguroYoshihiro
Co-authored-by: Zachary Stone <[email protected]>
04dfc2c to
c02a98f
Compare
CHANGELOG_UNRELEASED.md
Outdated
| + definitions `jordan_neg`, `jordan_pos` | ||
| + lemmas `jordan_decomp`, `jordan_pos_dominates`, `jordan_neg_dominates` | ||
| + lemma `radon_nikodym_finite` | ||
| + definition `Radon_Nikodym`, notation `'d nu /d mu` |
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.
Where is the notation defined?
If you define it, which I think is nice, we must put it in a special scope because we might want the same kind of notation for partial derivatives someday.
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.
Yes, I messed up with my commits, wait a minute.
- add notation Co-authored-by: IshiguroYoshihiro
c02a98f to
405fd3a
Compare
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'm fine with the changes. And root for merging.
(I involuntarily re-requested a review by @zstone1 but since he approved before I think we're good to merge?)
|
Thank for the careful reviews! @zstone1 @CohenCyril |
* proof of Radon-Nikodym Co-authored-by: IshiguroYoshihiro Co-authored-by: Zachary Stone <[email protected]>
* tentative proof of Radon-Nikodym (#818) * proof of Radon-Nikodym Co-authored-by: IshiguroYoshihiro Co-authored-by: Zachary Stone <[email protected]> * fix for charge.v - added Monoid.isLaw instance for maxe --------- Co-authored-by: Zachary Stone <[email protected]>
* proof of Radon-Nikodym Co-authored-by: IshiguroYoshihiro Co-authored-by: Zachary Stone <[email protected]>
Motivation for this change
based on PR #777 (it seems that I cannot change the base of this PR because 777 is coming from a git repo that is not MathComp-Analysis, that's why the two commits from 777 appear again here)this PR changes the definition of(problem solved)measure_ge0by adding ameasurablehypothesis which is not unreasonable but might be avoided @CohenCyrilThis PR actually duplicates a few lemmas from PR #914 that should be removed before merging.DONEThings done/to do
CHANGELOG_UNRELEASED.md(do not edit former entries, only append new ones, be careful:
merge and rebase have a tendency to mess up
CHANGELOG_UNRELEASED.md)Automatic note to reviewers
Read this Checklist and put a milestone if possible.