Repository navigation
feat: nulls generated by constraints, their bets, and the complete class theorem for finitely many constraints - #402
Merged
lmlexplore-automation[bot] merged 5 commits intoNov 15, 2026
Conversation
…ass theorem for finitely many constraints Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0196ftMVbgjSJzPQEwdek3kM
RemyDegenne
commented
Nov 15, 2026
RemyDegenne
commented
Nov 15, 2026
RemyDegenne
commented
Nov 15, 2026
Contributor
Author
AI review — approvedEach rubric is judged independently by multiple review agents; the PR merges only once every rubric is green — any rubric that is not green (changes requested, blocked, errored, stale, or not yet run) blocks the merge. See the rubrics.
♻️ = approved on an earlier commit, re-run before merge. Reviewing this diff at head |
…ete class Make the general helpers public in general files (`integral_sum_smul_dirac` in `MeasureTheory/Measure/Weighted`, `nonneg_of_forall_lt_add_mul` in `Algebra/Order/Field/Basic`, the new `le_of_forall_nat_le_add_one_div` in `Algebra/Order/Archimedean/Basic`), add `noArbitrageOn_iff` and the constraint-null lemmas on nonnegative combinations of the constraints, reuse `LinearMap.prod_pi_apply_eq_sum_univ` and `Nat.one_div_le_one_div`, comment the long proofs and drop proof descriptions from theorem docstrings. Co-Authored-By: Claude Code <noreply@github.com>
Describe the set built by `exists_measurableSet_noArbitrageOn` as a set carrying the null rather than its support, and state the measurability and almost-sure conditions of the bet results in the `Basic.lean` module docstring. Simplify `nonneg_of_forall_lt_add_mul`, comment the structure of `exists_charging_family_of_noArbitrageOn`, and factor the repeated almost-everywhere step into `ae_of_forall_mem_of_measure_compl_eq_zero`. Co-Authored-By: Claude Code <noreply@github.com>
RemyDegenne
commented
Nov 15, 2026
…ields Co-Authored-By: Claude Code <noreply@github.com>
RemyDegenne
commented
Nov 15, 2026
…l sites Delete LMLExplore/MeasureTheory/OuterMeasure/AE.lean, whose only lemma was a thin wrapper around Filter.eventually_of_mem (mem_ae_iff.2 _), and write that term directly in the complete class proofs. Co-Authored-By: Claude Code <noreply@github.com>
This was referenced Nov 15, 2026
Merged
via the queue into
LeanMachineLearning:main
with commit Nov 15, 2026
6b17d3a
23 of 27 checks passed
This was referenced Nov 15, 2026
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.
This pull request adds the null generated by a set of constraints and the bets on finitely many
constraints, with their basic API, and proves the complete class theorem of Larsson, Ramdas and
Ruf for finitely many constraints [LRR26, Theorem 3.1]. The theorem is proved in both of the
roadmap's forms: for real functions with nonpositive integrals, and for e-variables.
The proof does not use the paper's weak topology and bipolar theorem. It is finite-dimensional:
Ycarrying the null, a measurable set that carries every member and on which theconstraints admit no arbitrage, built by induction on the dimension of the span of the
constraint vectors;
Y, throughgeometric_hahn_banach_compact_closed;Roadmap target
EValues, Layer 1, item 4, "Nulls generated by constraints and the dual formula for KL_inf".
Covered:
constraintNull Φand the betsΠ g(constraintBets g) forfinitely many constraints
g : ι → 𝓧 → ℝ,[Fintype ι];fhas∫ f ∂μ ≤ 0for everyμ ∈ constraintNull (range g)exactly whenf ≤ ∑ i, π i * g iquasi-surely for someπ ≥ 0. No integrability offis assumed: thepaper asks
f ∈ L^Φ, but with the Bochner integral the equivalence holds without it;1 + ∑ i, π i * g i. In this formπis a bet (π ∈ constraintBets g), not onlyπ ≥ 0.Left for later pull requests:
null [LRR26, Theorem 9.2], the pointwise form on a standard Borel space [Cle26b, Proposition 1]
and arbitrary
Φ[LRR26, Theorem 2.2];KL_inf, its corollaries, and infinitely many constraints.Lagrange duality, the other tool of the item, is already on
main(
Analysis/Convex/LagrangeDuality.lean).Main declarations
LMLExplore/EValues/ConstraintNull/Basic.lean, in namespaceProbabilityTheory:constraintNull Φ[LRR26, Definition 2.1] andconstraintBets g[LRR26, Corollary 3.3];mem_constraintNull_iff,mem_constraintNull_range_iff;isProbabilityMeasure_of_mem_constraintNull,integrable_of_mem_constraintNull,integral_nonpos_of_mem_constraintNull;constraintNull_anti(@[gcongr]),constraintNull_union,constraintNull_empty;sum_smul_dirac_mem_constraintNull_iff,dirac_mem_constraintNull_iff;sum_mul_nonpos_of_forall_integral_nonpos,sum_ofReal_mul_le_one_of_isEVar;mem_constraintBets_iff,zero_mem_constraintBets,convex_constraintBets;lintegral_ofReal_one_add_sum_mul,lintegral_ofReal_one_add_of_mem_constraintBets,lintegral_ofReal_one_add_le_one_of_mem_constraintBets;isEVar_ofReal_one_add_of_mem_constraintBets(bets give e-variables).LMLExplore/EValues/ConstraintNull/CompleteClass.lean, in namespaceProbabilityTheory:NoArbitrageOn a YandnonredundantWeights a Y[LRR26, (3.1)], withisClosed_nonredundantWeights,smul_mem_nonredundantWeights,exists_mem_nonredundantWeights_sum_mul_eq[LRR26, Lemma 3.2],isCompact_nonredundantWeights_interandexists_finset_sum_le_of_noArbitrageOn[LRR26, proof of Lemma 7.2];
exists_mem_nonredundantWeights_le_of_noArbitrageOn: the finite-dimensional complete classtheorem on a set without arbitrage, and
exists_charging_family_of_noArbitrageOn;exists_measurableSet_noArbitrageOn: a measurable set carrying the null, without arbitrage;lt_top_of_isEVar_of_noArbitrageOn: e-variables are finite on the support;exists_mem_nonredundantWeights_le_of_forall_integral_nonposandexists_mem_nonredundantWeights_toReal_le_of_isEVar: the domination on the support, withnonredundant weights;
forall_integral_nonpos_iff_exists_ae_le,IsEVar.exists_mem_constraintBets_ae_leandisEVar_constraintNull_iff: the complete class theorem [LRR26, Theorem 3.1].The later pull requests of the item reuse
NoArbitrageOn,nonredundantWeights, the set carryingthe null and the compactness lemmas.
Notes for reviewers
[MeasurableSpace 𝓧]as an instance argument, sinceΦ : Set (𝓧 → ℝ)does not determine it.
constraintNullasks no measurability of the constraints: integrability already contains almosteverywhere strong measurability. The theorems that need measurable constraints assume it.
Roadmap: EValues
Paper: RemyDegenne/evalues_research
Item: R4
🤖 Generated with Claude Code
https://claude.ai/code/session_0196ftMVbgjSJzPQEwdek3kM