fix: extended-real Jordan inner measure for Exercise 1.2.5 - #685
Open
teorth wants to merge 1 commit into
Open
Conversation
…1.2.5
`Lebesgue_outer_measure.of_open` and Exercise 1.2.5 were false as stated.
`Jordan_inner_measure` is ℝ-valued (`sSup` over a set of reals) while
`Lebesgue_outer_measure` is `EReal`-valued, so for an unbounded open set such
as `Set.univ` in `d ≥ 1` the left side is `⊤` while the right side is a `sSup`
over a set with no upper bound, i.e. Mathlib's junk value `0`.
The text is explicit that the unbounded case is intended: Exercise 1.2.5 asks
to show `m*(E) = m_{*,(J)}(E)` "where we extend the definition of Jordan inner
measure to unbounded sets in the obvious manner". So rather than restricting
the statements to bounded sets, this adds that extension:
- `Jordan_inner_measure'`, taking the supremum in `EReal`;
- `Jordan_inner_measure'_eq_coe`, showing it agrees with `Jordan_inner_measure`
on bounded sets, so it really is an extension of Definition 1.1.4;
- `Jordan_inner_measure'_univ`, showing it is `⊤` on the whole space for
`d ≥ 1` — the counterexample that refutes the previous statements;
- supporting API: `Jordan_inner_nonempty`, `Jordan_inner_bddAbove`,
`Jordan_inner_measure'_set_eq`, `EReal.sSup_image_coe`, and
`EuclideanSpace'.isBounded_of_dim_zero`.
Exercise 1.2.5 and `of_open` are restated with `Jordan_inner_measure'`. The
exercise keeps its `sorry`; `of_open` keeps its existing proof, with the two
bounded branches (dimension zero, and the empty set) routed through
`Jordan_inner_measure'_eq_coe`.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Fixes the defect reported in #679, in the direction the text calls for.
The problem
Lebesgue_outer_measure.of_openand Exercise 1.2.5 (Lebesgue_outer_measure.eq_Jordan_inner_of_boxes) were false as stated.Jordan_inner_measureisℝ-valued — asSupover a set of reals — whileLebesgue_outer_measureisEReal-valued. For an unbounded open set such asSet.univind ≥ 1, the left side is⊤while the right side is a supremum over a set with no upper bound, which Mathlib evaluates to the junk value0.Why not just add a boundedness hypothesis
That was the fix proposed in #679, and it compiles, but it contradicts the text. Exercise 1.2.5 reads:
The unbounded case is exactly what the exercise is asking for, and it is what makes the subsequent formula for the outer measure of an arbitrary open set work. Restricting to bounded sets would also weaken
of_openbelow Lemma 1.2.10.What this does instead
Supplies the extension the text asks for:
Jordan_inner_measure'— the same supremum, taken inEReal.Jordan_inner_measure'_eq_coe— it agrees withJordan_inner_measureon bounded sets, so it is genuinely an extension of Definition 1.1.4 rather than a different notion.Jordan_inner_measure'_univ— it is⊤on the whole space whend ≥ 1. This is the counterexample that refutes the old statements, recorded as a theorem rather than left as a remark.Supporting API:
Jordan_inner_nonempty,Jordan_inner_bddAbove,Jordan_inner_measure'_set_eq,EReal.sSup_image_coe(the real andERealsuprema agree for a nonempty set bounded above), andEuclideanSpace'.isBounded_of_dim_zero.Exercise 1.2.5 and
of_openare then restated withJordan_inner_measure'. The exercise keeps itssorry.of_openkeeps its existing proof: its two bounded branches — dimension zero, and the empty set — are routed throughJordan_inner_measure'_eq_coe, and the main branch is unchanged since it just applies the exercise.The real-valued
Jordan_inner_measureis untouched, soJordanMeasurableand everything built on it are unaffected.lake buildpasses locally: 8310 jobs, no errors, no new warnings.Closes #679.
🤖 Generated with Claude Code