-
Notifications
You must be signed in to change notification settings - Fork 185
Complete proofs for simple functions and AlmostAlways lemmas #423
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
+784
−15
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ories - Add **/.env pattern to ignore environment files - Add **/.aider.conf.yml to ignore aider configuration files - Add **/docker/ pattern to ignore docker directories
- Prove UnsignedSimpleFunction.support_measurable: support of simple function is measurable via union of positive-coefficient sets - Prove AlmostAlways.ofAlways: always-true properties are almost always true (empty complement has measure zero) - Prove AlmostAlways.mp: modus ponens for almost-always properties via subset monotonicity - Prove AlmostAlways.countable: countable conjunction preserves almost-always via countable union of null sets
- Prove ComplexSimpleFunction.re: real part of complex simple function is real simple function via Re(c_i) coefficients - Prove ComplexSimpleFunction.im: imaginary part of complex simple function is real simple function via Im(c_i) coefficients - Both proofs extract representation, apply Re/Im to coefficients, and use complex arithmetic properties (re_sum, im_sum, re_mul_ofReal, im_mul_ofReal)
…roofs - Add RealSimpleFunction.DisjointRepr namespace with atom-based disjoint representation machinery - Prove RealSimpleFunction.disjoint_representation: any simple function has equivalent representation with pairwise disjoint measurable sets - Complete RealSimpleFunction.pos proof: uses disjoint representation and max(v_i, 0) coefficients - Complete RealSimpleFunction.neg proof: reduces to pos via neg_fun f = pos_fun (-f)
- Move singleAtom, singleAtom_pairwiseDisjoint, mem_singleAtom_iff, exists_unique_singleAtom, and atomValue from RealSimpleFunction.DisjointRepr to UnsignedSimpleFunction.IntegralWellDef - Update references in RealSimpleFunction.disjoint_representation to use new locations - Simplify comments and remove redundant explanations - Better organization: general atom machinery in general namespace, measure-specific lemmas remain in DisjointRepr
- Prove RealSimpleFunction.toComplex: real simple function coerces to complex simple function - Extract representation, apply Complex.ofReal to coefficients, use Complex.ofReal_sum and Complex.ofReal_mul to show equality
- Add AlmostEverywhereEqual.refl, symm, trans lemmas (proofs pending) - Add AlmostEverywhereEqual.equivalence theorem combining them into Equivalence instance - Sets up structure to prove AlmostEverywhereEqual is an equivalence relation
- Prove AlmostEverywhereEqual.refl: uses AlmostAlways.ofAlways (empty set is null) - Prove AlmostEverywhereEqual.symm: uses ne_comm to show symmetric sets have same measure - Prove AlmostEverywhereEqual.trans: uses subset inclusion and countable subadditivity to show union of null sets is null
…nces) - Add UnsignedMeasurable.TFAE_helpers namespace with statement abbreviations (i)-(xi) - Implement helper lemmas: complementation proofs (v↔vi↔vii↔viii, x↔xi), definitional (i↔ii), pointwise convergence (ii→iii) - Add TFAE proof structure using tfae_have and tfae_finish to assemble implication graph - Several technical lemmas marked with sorry (limsup, monotone convergence, interval preimages, approximating sequence construction)
- Complete iv_imp_ii: use tendsto_atTop_iSup for monotone sequences - Complete v_imp_vi: case analysis for ⊥, ⊤, and finite values using countable intersections - Complete vi_imp_v: use countable union over rationals with EReal.exists_rat_btwn_of_lt - Complete v_to_viii_imp_ix: all interval preimage cases using EReal.image_coe_Ixx lemmas - Fix x_imp_viii → x_imp_vii: use open set Iio instead of closed Iic - Update documentation to reflect corrected implication paths
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR completes several proofs in Section 1.3.1 and adds structure for Lemma 1.3.9:
All proofs replace
sorrystatements with complete formal proofs.