Simplify via mathlib v4.30.0: replace upstreamed/missed helpers#134
Merged
Conversation
- Finset.filter_val_lt_card -> Fin.card_filter_val_lt (2 sites); Util/FinsetHelpers.lean deleted (sole content) - integrable_of_bounded (Probability/CondExp.lean) -> Integrable.of_bound (6 sites in CesaroL1Bounded) - integrable_of_bounded_measurable (LpNormHelpers) -> Integrable.of_bound (10 sites across ViaKoopman) - memLp_two_of_bounded (LpNormHelpers) -> MemLp.of_bound (3 sites) NOT migrated (audit claim didn't survive contact with the real call sites): aestronglyMeasurable_sub_of_tendsto_ae stays — mathlib's aestronglyMeasurable_of_tendsto_ae only covers the m = m0 case, while this helper's purpose is AEStronglyMeasurable[m] for m < m0 via a limsup witness; its docstring now records that.
… drop dead condExp_mul_pullout - injective_implies_strictMono_perm: 64-line orderIsoOfFin construction -> one-liner via Tuple.sort + Monotone.strictMono_of_injective (signature unchanged) - Probability/CondExp.lean condExp_mul_pullout: deleted — zero call sites; the same-named ViaKoopman/InfraGeneralized lemma (the one actually used, already a thin wrapper over mathlib's condExp_mul_of_aestronglyMeasurable_left) is unchanged
…eMeasure The new proof goes through MemLp.eLpNorm_eq_integral_rpow_norm and does not need [IsFiniteMeasure μ]; the hypothesis is dropped (user-approved signature weakening — strictly more general, call sites unaffected). ~55 lines of lintegral manipulation -> 8 lines.
…esh counts Util/FinsetHelpers.lean deletion drops one module: SVG/PNG/HTML regenerated via the PR #132 procedure (colors carried per module; 102 clickable SVG nodes; embedded GEXF re-validated, 102 nodes / 151 edges); home_page file count and STATUS.md LOC table refreshed.
Also recording here (per review): commit ccc9c6c's removal of the public lemma Exchangeability.Probability.condExp_mul_pullout is an intentional breaking API change — it had zero call sites in this repo and no wrapper is kept; external users should migrate to mathlib's condExp_mul_of_stronglyMeasurable_right (right-factor form) or the ViaKoopman condExp_mul_pullout (left-factor, shift-invariant form).
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
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
Post-upgrade audit: replace repo helpers that mathlib v4.30.0 now covers (recently upstreamed or previously missed). Survey first confirmed the major infrastructure must stay local — mathlib still has no de Finetti/exchangeability, no Lévy downward (reverse-martingale) convergence, no von Neumann mean ergodic theorem, no Koopman operator, and no finite-product kernels.
InfiniteProduct.leanalready wraps mathlib'sMeasure.infinitePi.Deleted (mathlib equivalent exists)
Finset.filter_val_lt_cardFin.card_filter_val_lt(+min_eq_right)Util/FinsetHelpers.leandeleted (sole content)Exchangeability.Probability.integrable_of_boundedIntegrable.of_boundMeasureTheory.integrable_of_bounded_measurableIntegrable.of_boundMeasureTheory.memLp_two_of_boundedMemLp.of_boundExchangeability.Probability.condExp_mul_pullout(theProbability/CondExp.leanone)condExp_mul_of_stronglyMeasurable_right(right-factor form). The same-named ViaKoopman lemma (different statement, left-factor pull-out, already a thin wrapper overcondExp_mul_of_aestronglyMeasurable_left) is the one in use and is unchangedShrunk (signature unchanged unless noted)
injective_implies_strictMono_perm: 64-lineorderIsoOfFinconstruction → one line viaTuple.sort+Monotone.strictMono_of_injective.eLpNorm_two_sq_eq_integral_sq: ~55 lines → 8 viaMemLp.eLpNorm_eq_integral_rpow_norm. Statement change (approved):[IsFiniteMeasure μ]dropped — the new proof doesn't need it; strictly more general, call sites unaffected. Isolated in its own commit (refactor!).Attempted and reverted (audit claim didn't survive contact)
aestronglyMeasurable_sub_of_tendsto_aewas slated for replacement by mathlib'saestronglyMeasurable_of_tendsto_ae, but that lemma only covers them = m₀case — itsAEStronglyMeasurableis taken at the measure's own σ-algebra. The repo helper's entire point isAEStronglyMeasurable[m]for a strict sub-σ-algebram < m₀via a limsup witness. The helper stays, with a docstring note recording why; it's now the top upstream candidate.Kept (verified absent from mathlib v4.30.0) — upstream candidates
aestronglyMeasurable_sub_of_tendsto_aeandaestronglyMeasurable_iInf_antitone(sub-σ-algebra measurability under limits/infima),abs_prod_sub_prod_le(telescoping product bound),measurable_measure_pi/aemeasurable_measure_pi(measurability of finite product-measure families — noKernel.piin mathlib),eLpNorm_one_eq_integral_abs,dist_toLp_eq_eLpNorm_sub,eLpNorm_lt_of_integral_sq_lt,eLpNorm_two_from_integral_sq_le,strictMono_Fin_ge_id, pushforward-integral wrappers,lintegral_fatou_ofReal_norm,condExp_L1_lipschitz(mathlib has only the one-functionintegral_abs_condExp_le).Artifacts
Module count 103 → 102:
import_graph_colored.{svg,png,html}regenerated (same procedure as #132; colors carried per module; embedded GEXF re-validated at 102 nodes / 151 edges; only the FinsetHelpers-incident edge dropped). File count and STATUS.md LOC table refreshed.Verification
lake build: clean, zero warnings--report-only)#print axioms deFinetti: exactly[propext, Classical.choice, Quot.sound](CI gate keeps passing)lake exe checkdecls blueprint/lean_declsandblueprint/check_blueprint.py(52/52): pass