Skip to content

feat: generalize tangentConeAt.lim_zero to TVS#21065

Open
eric-wieser wants to merge 9 commits intomasterfrom
eric-wieser/tvs-tangentCone-v2
Open

feat: generalize tangentConeAt.lim_zero to TVS#21065
eric-wieser wants to merge 9 commits intomasterfrom
eric-wieser/tvs-tangentCone-v2

Conversation

@eric-wieser
Copy link
Copy Markdown
Member

@eric-wieser eric-wieser commented Jan 25, 2025

... and then adjust the variables down the rest of the file to make use of the generality.

There are two key lemmas that this does not generalize, which would probably unlock the rest of the file:

  • subset_tangentCone_prod_left (and _right)
  • zero_mem_tangentCone

Open in Gitpod

Without any changes to the proofs, these lemmas do not need a normed space.
@eric-wieser eric-wieser added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Jan 25, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 25, 2025

PR summary 6cca842c82

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

No declarations were harmed in the making of this PR! 🐙

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

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

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


No changes to technical debt.

You can run this locally as

./scripts/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).

variable {x y : E} {s t : Set E}

/-- The tangent cone of a product contains the tangent cone of its left factor. -/
theorem subset_tangentCone_prod_left {t : Set F} {y : F} (ht : y ∈ closure t) :
Copy link
Copy Markdown
Member Author

@eric-wieser eric-wieser Jan 25, 2025

Choose a reason for hiding this comment

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

This then becomes the last generalization to resolve in this file. The obvious start to the proof is

theorem subset_tangentCone_prod_left {t : Set F} {y : F} (ht : y ∈ closure t) :
    LinearMap.inl 𝕜 E F '' tangentConeAt 𝕜 s x ⊆ tangentConeAt 𝕜 (s ×ˢ t) (x, y) := by
  rintro _ ⟨v, ⟨c, d, hd, hc, hy⟩, rfl⟩
  suffices ∃ d' : ℕ → F, (∀ᶠ n in atTop, y + d' n ∈ t) ∧ Tendsto (fun n => c n • d' n) atTop (𝓝 0) by
    choose d' hd'1 hd'2 using this
    exact ⟨c, fun n => (d n, d' n), hd.and hd'1, hc, hy.prod_mk_nhds hd'2sorry

which I think follows immediately just by restructureing the previous proof.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This (the rest of the proof, not what you've written) does not seem obvious to me. I need to think about it. One issue is the hardcoded countability in the definition of the tangent code.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Note that I'd be very happy to postpone generalizing this lemma to a later PR; I think the generalization you helped with with that's already in this diff is enough to unlock a lot of basic deriv results.

@mathlib-bors mathlib-bors bot deleted the branch master January 27, 2025 19:51
@mathlib-bors mathlib-bors bot closed this Jan 27, 2025
@mathlib-bors mathlib-bors bot changed the base branch from eric-wieser/tvs-tangentCone to master January 27, 2025 19:51
@ADedecker ADedecker reopened this Jan 27, 2025
@leanprover-community-bot-assistant leanprover-community-bot-assistant 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 27, 2025
@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot removed the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Jan 27, 2025
@mathlib4-dependent-issues-bot
Copy link
Copy Markdown
Collaborator

This PR/issue depends on:

@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 27, 2025
@eric-wieser eric-wieser marked this pull request as ready for review January 27, 2025 22:16
variable [NormedAddCommGroup G] [NormedSpace ℝ G]
variable {x y : E} {s t : Set E}
/-- The tangent cone at a non-isolated point contains `0`. -/
theorem zero_mem_tangentCone {s : Set E} {x : E} (hx : (𝓝[s \ {x}] x).NeBot) :
Copy link
Copy Markdown
Member Author

@eric-wieser eric-wieser Jan 27, 2025

Choose a reason for hiding this comment

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

This is the other proof which I skipped generalizing.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I haven't looked carefully, but again it doesn't seem obvious.

@eric-wieser eric-wieser requested a review from urkud January 28, 2025 23:00
@ADedecker
Copy link
Copy Markdown
Member

ADedecker commented Jan 29, 2025

If you want to add it somewhere (maybe in an issue?), I would expect the following definition to at least eliminate the countability issues:

open scoped Pointwise in
open Bornology in
def tangentConeAt' (s : Set E) (x : E) : Set E :=
  let 𝓓 : Filter E := 𝓟 ((x + ·) ⁻¹' s)
  let 𝓒 : Filter 𝕜 := Bornology.cobounded 𝕜
  { y : E | ClusterPt y (𝓒 • 𝓓) }

The right question I think is: does this work nicely for polynormed spaces, that is spaces whose topology is defined by a family of seminorms (in the real or complex case this is the same as locally convex, but it also covers a bunch of important things about the p-adic case).

The reason polynormed spaces are important is that in that case I expect most of the theory to extend, while for general TVSs I don't think we will be able to go that far.

@eric-wieser
Copy link
Copy Markdown
Member Author

That definition looks very similar to the one that @urkud sent to me in a Zulip message last night!

@urkud
Copy link
Copy Markdown
Member

urkud commented Jan 29, 2025

It's exactly the same definition. The only difference is that I inlined lets. I'll try to migrate to this definition tonight after hours.

@urkud
Copy link
Copy Markdown
Member

urkud commented Jan 30, 2025

UPD: I'm thinking about some other definitions that may play better in case of a TVS without a first countable topology. I'm trying to find the weakest definition (with the largest answer) that still guarantees equality of derivatives. More on this tomorrow. It looks like the weakest definition that works is

def tangentConeAt (s : Set E) (x : E) : Set E :=
  { y : E | MapClusterPt y ((⊤ : Filter 𝕜) ×ˢ 𝓝[insert x s] x) fun (c, d) ↦ c • (d - x) }

I'm not 100% sure whether 𝓝[insert x s] x or 𝓝[s] x gives all the good properties, will try over the weekend.
It looks like the insert definition is bad for tangentConeAt 𝕜 (s ×ˢ t) (x, y) and the 𝓝[s] x definition is equivalent to the one above, up to the assumptions in zero_mem_tangentConeAt.

@j-loreaux
Copy link
Copy Markdown
Contributor

What's the current status of this PR @eric-wieser and @urkud ? It seems like it shouldn't be on the queue.

@urkud
Copy link
Copy Markdown
Member

urkud commented Feb 20, 2025

I'm working on redefining the tangent cone when I have time. This one shouldn't be on the queue.

@j-loreaux j-loreaux added the WIP Work in progress label Feb 20, 2025
@leanprover-community-bot-assistant leanprover-community-bot-assistant added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Apr 28, 2025
@leanprover-community-bot-assistant
Copy link
Copy Markdown
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) t-analysis Analysis (normed *, calculus) WIP Work in progress

Development

Successfully merging this pull request may close these issues.

6 participants