Skip to content

[Merged by Bors] - feat(Analysis): a closed convex set is the intersection of countably many half-spaces#31180

Closed
CoolRmal wants to merge 1 commit intoleanprover-community:masterfrom
CoolRmal:separation
Closed

[Merged by Bors] - feat(Analysis): a closed convex set is the intersection of countably many half-spaces#31180
CoolRmal wants to merge 1 commit intoleanprover-community:masterfrom
CoolRmal:separation

Conversation

@CoolRmal
Copy link
Copy Markdown
Contributor

@CoolRmal CoolRmal commented Nov 2, 2025

This lemma is needed in the proof of conditional Jensen's inequality: #27953


Open in Gitpod

@github-actions github-actions bot added the new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! label Nov 2, 2025
@CoolRmal
Copy link
Copy Markdown
Contributor Author

CoolRmal commented Nov 2, 2025

WIP

@github-actions github-actions bot added the WIP Work in progress label Nov 2, 2025
@github-actions github-actions bot added the t-analysis Analysis (normed *, calculus) label Nov 2, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Nov 2, 2025

PR summary b72c03457b

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ iInter_countable_halfSpaces_eq
+ iInter_halfSpaces_eq'

You can run this locally as follows
## summary with just the declaration names:
./scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./scripts/reporting/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@mathlib4-merge-conflict-bot mathlib4-merge-conflict-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 6, 2025
@mathlib4-merge-conflict-bot
Copy link
Copy Markdown
Collaborator

This pull request has conflicts, please merge master and resolve them.

@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 8, 2025
@CoolRmal
Copy link
Copy Markdown
Contributor Author

CoolRmal commented Nov 8, 2025

-WIP

Copy link
Copy Markdown
Member

@EtienneC30 EtienneC30 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! My comments are about the style.

Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
@EtienneC30 EtienneC30 added the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 9, 2025
@CoolRmal
Copy link
Copy Markdown
Contributor Author

CoolRmal commented Nov 9, 2025

-awaiting-author

@github-actions github-actions bot removed the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 9, 2025
Copy link
Copy Markdown
Contributor

@j-loreaux j-loreaux left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit dubious about some aspects of the approach here.

-/
import Mathlib.Analysis.Convex.Cone.Extension
import Mathlib.Analysis.Convex.Gauge
import Mathlib.Analysis.Normed.Module.Convex
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is a bit of a heavy import for this file. What result did you need from it?

Copy link
Copy Markdown
Contributor Author

@CoolRmal CoolRmal Nov 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I need convex_ball from this file so that I can use geometric_hahn_banach_open, which also explains why I need [NormedSpace ℝ E].

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything in Mathlib.Analysis.Normed.Module.Convex still works after I replace [NormedSpace ℝ E] with [Module ℝ E] [NormSMulClass ℝ E], but this is a weirder assumption and I don't know whether this can create problems in other files.

Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
@j-loreaux j-loreaux added the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 11, 2025
@mathlib4-merge-conflict-bot mathlib4-merge-conflict-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 19, 2025
@mathlib4-merge-conflict-bot
Copy link
Copy Markdown
Collaborator

This pull request has conflicts, please merge master and resolve them.

@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 27, 2025
@CoolRmal
Copy link
Copy Markdown
Contributor Author

-awaiting-author

@github-actions github-actions bot removed the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 27, 2025
@ADedecker
Copy link
Copy Markdown
Member

What do you think about the following alternative approach? I'm not sure it works (I just made it up).

Thanks to SecondCountableTopology.toHereditarilyLindelof, E is hereditarily Lindelöf.

This implies that the complement sᶜ of your convex set is Lindelöf.

Now, you know by RCLike.iInter_halfSpaces_eq (or a variation of it) that s can be written as a huge intersection of closed halfspaces. In other world, the intersection of all these hyperplanes with sᶜ is empty. But then, IsLindelof.elim_countable_subfamily_closed gives you a countable subfamily which satisfies the same thing, hence you are done.

@ADedecker
Copy link
Copy Markdown
Member

Even cleaner: you can prove and use the dual version of eq_open_union_countable.

@ADedecker ADedecker added the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 27, 2025
@CoolRmal
Copy link
Copy Markdown
Contributor Author

CoolRmal commented Nov 28, 2025

@ADedecker Thank you for your comments. I updated my PR and here's a quick summary: I proved that if s is a closed convex set in a locally convex TVS E such that its complement is Lindelof, then it is equal to an intersection of countably many half spaces. The assumption is a bit weird, but it applies to an arbitrary convex closed set in a HereditarilyLindelof locally convex TVS.

-awaiting-author

@github-actions github-actions bot removed the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 28, 2025
Copy link
Copy Markdown
Member

@ADedecker ADedecker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for the quick response! I couldn't help playing a bit with the proofs, but feel free to object to some of my suggestions (e.g changes to the statements).

Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
Comment thread Mathlib/Analysis/LocallyConvex/Separation.lean Outdated
@ADedecker ADedecker added the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 28, 2025
@mathlib4-merge-conflict-bot mathlib4-merge-conflict-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Dec 22, 2025
@mathlib4-merge-conflict-bot
Copy link
Copy Markdown
Collaborator

This pull request has conflicts, please merge master and resolve them.

@ADedecker
Copy link
Copy Markdown
Member

Sorry, I really did not want to block this for so long... Whenever you are waiting for a response from the reviewers, feel free to remove "awaiting-author" tag, otherwise your PR will probably be overlooked...

I've thought a bit about your application, and this led me to #33778 (found in Bourbaki): this tells you that, as long as the domain is hereditarily Lindelof, if you know how to write your function as an arbitrary supremum of some lower-semicontinuous functions, then you can actually restrict to a countable subfamily without changing the supremum.

I claim the right approach is thus to prove the more general result that, in a locally convex space E, any convex lower-semicontinuous function φ : E → ℝ is an uncountable supremum of continuous affine functions. This is a more general result, and I think the proof is also simpler because you don't have to worry about countability. How does this sound?

Note that the content of this PR is still relevant, even if it might not be used for the final approximation result.

@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jan 10, 2026
@CoolRmal
Copy link
Copy Markdown
Contributor Author

@ADedecker Thank you for you reply. I was procrastinating because I was unsure about whether I should include the existence of nonzero linear forms in this PR. #33778 is great but I think it still can't resolve this problem. I am using https://link.springer.com/book/10.1007/978-3-319-48520-1 as my reference (the proof that a convex lower semicontinuity function is supremum of countably many affine functions is in Lemma 1.2.10, but I believe countability is not really used anywhere in that lemma, so the same proof works for the uncountable case), and I still believe the existence of nonzero linear forms is necessary (at least in the proof of Lemma 1.2.10, although it is not clearly written in the book).

I am happy to change my code if you have a reference of a better proof, and I think it is probably better to continue our discussion on Zulip: #mathlib4 > Discussion thread for Conditional Jensen's Inequality

@mathlib4-merge-conflict-bot
Copy link
Copy Markdown
Collaborator

This pull request has conflicts, please merge master and resolve them.

@mathlib4-merge-conflict-bot mathlib4-merge-conflict-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jan 21, 2026
@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Mar 4, 2026
@CoolRmal
Copy link
Copy Markdown
Contributor Author

CoolRmal commented Mar 6, 2026

  • awaiting-author

@github-actions github-actions bot removed the awaiting-author A reviewer has asked the author a question or requested changes. label Mar 6, 2026
@RemyDegenne RemyDegenne changed the title feat(Analysis): a closed convex set is the intersection of countably many half-spaces in a separable Banach space feat(Analysis): a closed convex set is the intersection of countably many half-spaces Mar 9, 2026
Copy link
Copy Markdown
Contributor

@RemyDegenne RemyDegenne left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!
bors r+

mathlib-bors bot pushed a commit that referenced this pull request Mar 9, 2026
…many half-spaces (#31180)

This lemma is needed in the proof of conditional Jensen's inequality: #27953
@mathlib-triage mathlib-triage bot added the ready-to-merge This PR has been sent to bors. label Mar 9, 2026
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Mar 9, 2026

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(Analysis): a closed convex set is the intersection of countably many half-spaces [Merged by Bors] - feat(Analysis): a closed convex set is the intersection of countably many half-spaces Mar 9, 2026
@mathlib-bors mathlib-bors bot closed this Mar 9, 2026
xroblot pushed a commit to xroblot/mathlib4 that referenced this pull request Mar 9, 2026
…many half-spaces (leanprover-community#31180)

This lemma is needed in the proof of conditional Jensen's inequality: leanprover-community#27953
xroblot pushed a commit to xroblot/mathlib4 that referenced this pull request Mar 9, 2026
…many half-spaces (leanprover-community#31180)

This lemma is needed in the proof of conditional Jensen's inequality: leanprover-community#27953
@CoolRmal CoolRmal deleted the separation branch March 9, 2026 14:27
seewoo5 pushed a commit to seewoo5/mathlib4 that referenced this pull request Mar 9, 2026
…many half-spaces (leanprover-community#31180)

This lemma is needed in the proof of conditional Jensen's inequality: leanprover-community#27953
xroblot pushed a commit to xroblot/mathlib4 that referenced this pull request Mar 10, 2026
…many half-spaces (leanprover-community#31180)

This lemma is needed in the proof of conditional Jensen's inequality: leanprover-community#27953
xroblot pushed a commit to xroblot/mathlib4 that referenced this pull request Mar 10, 2026
…many half-spaces (leanprover-community#31180)

This lemma is needed in the proof of conditional Jensen's inequality: leanprover-community#27953
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! ready-to-merge This PR has been sent to bors. t-analysis Analysis (normed *, calculus)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants