Repository navigation
feat: the set without arbitrage that carries a constraint null also carries a given measure, or an arbitrage charges that measure - #416
Conversation
…arries a given measure, or an arbitrage charges that measure `exists_measurableSet_noArbitrageOn_or_exists_measure_ne_zero` generalizes `exists_measurableSet_noArbitrageOn`, which becomes its case `Q = 0`: for a measure `Q`, either a measurable set carries every member of the null and `Q` and the constraints admit no arbitrage on it, or a nonnegative combination of the constraints is nonnegative almost surely under the null and under `Q` and positive on a set of positive `Q`-measure. The dual formula for KL_inf with no constraint qualification (EValues roadmap, Layer 1.4) splits along this alternative. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0196ftMVbgjSJzPQEwdek3kM
There was a problem hiding this comment.
🟡 naming — request_changes claude/claude-opus-5-5
The new theorem's name says it produces a nonzero measure, but Q is an input and what the statement produces is weights ρ whose combination is positive on a set that Q charges.
LMLExplore/EValues/ConstraintNull/CompleteClass.lean:462— Inexists_measurableSet_noArbitrageOn_or_exists_measure_ne_zero, the suffixexists_measure_ne_zeroreads as an existential over a nonzero measure. The statement actually quantifies over weightsρ : ι → ℝand ends withQ {x | 0 < ∑ i, ρ i * g i x} ≠ 0for the givenQ. The module-doc bullet at line 70 repeats the name. Fix: Rename the existential after the sum, e.g.exists_measurableSet_noArbitrageOn_or_exists_measure_setOf_sum_mul_pos_ne_zero, or more brieflyexists_measurableSet_noArbitrageOn_or_exists_sum_mul_pos, and update the module-doc bullet to match.
Reply in this thread to contest a finding; that re-runs only this rubric and posts an answer here. (To fix it, just push a commit — that re-reviews on its own. To contest again after an answer, post a NEW reply rather than editing an old one.)
claude/claude-opus-5-5 · 21s · 53.6k in (36.7k cache read, 16.9k cache write) / 1.9k out tokens · reviewing this diff · rubric ·
There was a problem hiding this comment.
🟡 proof-quality — request_changes claude/claude-opus-5-5
The generalized induction is readable and has comments; the derived exists_measurableSet_noArbitrageOn closes its contradiction by an undocumented rfl that relies on the zero measure unfolding through its function coercion.
LMLExplore/EValues/ConstraintNull/CompleteClass.lean:535—exact absurd rfl hproves(0 : Measure 𝓧) {x | …} = 0byrfl, which relies on the zero measure unfolding through itsFunLikecoercion rather than on a lemma. Fix: Replace the branch withsimp at h(orexact absurd (by simp) h).
Reply in this thread to contest a finding; that re-runs only this rubric and posts an answer here. (To fix it, just push a commit — that re-reviews on its own. To contest again after an answer, post a NEW reply rather than editing an old one.)
claude/claude-opus-5-5 · 40s · 186.3k in (173.1k cache read, 13.2k cache write) / 2.9k out tokens · reviewing this diff · rubric ·
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 |
…e by simp Rename exists_measurableSet_noArbitrageOn_or_exists_measure_ne_zero to exists_measurableSet_noArbitrageOn_or_exists_sum_mul_pos. Co-Authored-By: Claude Code <noreply@github.com>
62f4045
This pull request generalizes one statement of
LMLExplore/EValues/ConstraintNull/CompleteClass.lean(merged in #402): the measurable set without arbitrage that carries a null generated by finitely many constraints can be made to carry a given measureQas well, unless a nonnegative combination of the constraints separatesQfrom the null. It changes that file only (49 lines added, 17 removed), adds one declaration and removes or renames none.The statement
exists_measurableSet_noArbitrageOn_or_exists_sum_mul_pos: for measurable constraintsg : ι → 𝓧 → ℝwith[Fintype ι]and any measureQon𝓧, one of the following holds.Ywithμ Yᶜ = 0for everyμ ∈ constraintNull (range g),Q Yᶜ = 0, andNoArbitrageOn g Y.ρ ≥ 0such that∑ i, ρ i * g iis nonnegative almost surely under every member of the null and underQ, and positive on a set of positiveQ-measure.exists_measurableSet_noArbitrageOnkeeps its statement and is now the caseQ = 0.Why
The proof is the induction that was already there, on the dimension of the span of the values of the constraints on
Y: each step removes the set where a nonnegative combination, nonnegative onY, is positive. The new statement stops at the first removed set thatQcharges. No second induction is added: the existing theorem is derived from the new one.The alternative is what the dual formula for
KL_infneeds when no constraint qualification is assumed (EValues, Layer 1, item 4, "The dual formula forKL_inf", and the remark "the dual formula ofKL_inffor any finite set of measurable constraints on any measurable space"). For an alternativeQ:1 + t ∑ i, ρ i * g iare bets with unbounded expected logarithms underQ, and both sides of the formula are⊤;Qis carried byY, where the complete class theorem holds pointwise and e-variables are finite.The dual formula itself is a separate pull request, to be opened once this one is merged: it needs this statement, and stacked pull requests are not allowed.
No open pull request changes
LMLExplore/EValues/ConstraintNull/CompleteClass.lean. The open #415 adds a new file in the same folder and usesexists_measurableSet_noArbitrageOn, whose statement is unchanged.Roadmap: EValues
Paper: RemyDegenne/evalues_research
Item: R37
🤖 Generated with Claude Code
https://claude.ai/code/session_0196ftMVbgjSJzPQEwdek3kM