Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - feat: locally Lipschitz maps #7314

Closed
wants to merge 16 commits into from

Conversation

grunweg
Copy link
Collaborator

@grunweg grunweg commented Sep 21, 2023

Define locally Lipschitz maps and show their basic properties.
In particular, they are continuous and stable under composition and products.
As an application, we conclude that C¹ maps are locally Lipschitz.


I've gone through the entire file; all API for Lipschitz maps (where this makes sense) has a counterpart for locally Lipschitz maps.

Left for the future:

  • sum and scalar multiples of a locally Lipschitz function valued in a normed space is locally Lipschitz
    (hence, locally Lipschitz functions form a submodule of the ring of continuous functions)
  • locally Lipschitz maps are a submonoid of $\text{End}(\alpha)$
  • both of these also hold for Lipschitz maps (on a set)

@grunweg grunweg added help-wanted The author needs attention to resolve issues awaiting-review t-topology Topological spaces, uniform spaces, metric spaces, filters t-analysis Analysis (normed *, calculus) labels Sep 21, 2023
@grunweg
Copy link
Collaborator Author

grunweg commented Sep 21, 2023

For the proof of composition, I'm stuck on two sorries related to coercions of subsets. Minimized code:

import Mathlib.Topology.EMetricSpace.Basic
open Topology
lemma minimized {X Y Z: Type*} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z]
    {f : Y → Z} {g : X → Y} {t: Set X} {u: Set Y}
    {x : X} (ht: t ∈ 𝓝 x) (hu: u ∈ 𝓝 (g x)) : True /- dummy statement -/ := by
  -- idea: shrink u to g(t); more precisely:
  -- restrict g to t' := t ∩ g⁻¹(u); the preimage of u under g':=g∣t.
  let g' := t.restrict g
  let t' : Set X := ↑(g' ⁻¹' u)
  -- The following is mathematically easy; I'm wrestling with filling the sorries.
  have h₁ : t' = t ∩ g ⁻¹' u := by
    apply Iff.mpr (Set.Subset.antisymm_iff)
    constructor
    · intro x hx
      constructor
      · exact Set.coe_subset hx
      · -- goal: x ∈ g ⁻¹' u
        -- informal argument: as x ∈ t', we can apply g' (and land in u by definition), so g'(x)=g(x) ∈ u
        sorry
    · intro x hx
      rcases hx with ⟨ht, hgu⟩
      -- goal: x ∈ t'
      -- as x ∈ t, we can write g(x)=g'(x); the rhs lies in u, so x ∈ g⁻¹(u) also
      sorry
  sorry -- omitted (have proven this)

@grunweg
Copy link
Collaborator Author

grunweg commented Sep 22, 2023

@eric-wieser Thanks for the quick comments. I've made the requested changes.
I'm on the fence about the second: it enables more golfing; in general, I find these golfed proofs somewhat readable in VS Code, but not on github. I don't know if the latter is aimed for; your call as a maintainer.

Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@grunweg
Copy link
Collaborator Author

grunweg commented Sep 22, 2023

Fixed the last sorry - courtesy of Alex J. Best on zulip. Thanks!
(There's also an aesop-free version, if you'd prefer me to avoid such a heavy hammer.)

@grunweg grunweg removed the help-wanted The author needs attention to resolve issues label Sep 22, 2023
Mathlib/Topology/MetricSpace/Lipschitz.lean Outdated Show resolved Hide resolved
Mathlib/Topology/MetricSpace/Lipschitz.lean Outdated Show resolved Hide resolved
Mathlib/Topology/MetricSpace/Lipschitz.lean Outdated Show resolved Hide resolved
grunweg and others added 2 commits September 24, 2023 23:01
Co-authored-by: Anatole Dedecker <anatolededecker@gmail.com>
And slight tweaks to the doc comments, and a minigolf using dot notation.
Mathlib/Topology/MetricSpace/Lipschitz.lean Outdated Show resolved Hide resolved
Mathlib/Topology/MetricSpace/Lipschitz.lean Outdated Show resolved Hide resolved
Mathlib/Topology/MetricSpace/Lipschitz.lean Outdated Show resolved Hide resolved
Mathlib/Topology/MetricSpace/Lipschitz.lean Show resolved Hide resolved
@sgouezel sgouezel added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review labels Sep 26, 2023
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr>
@grunweg
Copy link
Collaborator Author

grunweg commented Sep 26, 2023

awaiting-review

@github-actions github-actions bot added awaiting-review and removed awaiting-author A reviewer has asked the author a question or requested changes labels Sep 26, 2023
@sgouezel
Copy link
Contributor

bors d+
Thanks!

@bors
Copy link

bors bot commented Sep 26, 2023

✌️ grunweg can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@grunweg
Copy link
Collaborator Author

grunweg commented Sep 26, 2023

Thanks for the review!
bors r+

bors bot pushed a commit that referenced this pull request Sep 26, 2023
Define locally Lipschitz maps and show their basic properties.
In particular, they are continuous and stable under composition and products.
As an application, we conclude that C¹ maps are locally Lipschitz.



Co-authored-by: grunweg <grunweg@posteo.de>
@bors
Copy link

bors bot commented Sep 26, 2023

Pull request successfully merged into master.

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

@bors bors bot changed the title feat: locally Lipschitz maps [Merged by Bors] - feat: locally Lipschitz maps Sep 26, 2023
@bors bors bot closed this Sep 26, 2023
@bors bors bot deleted the MR_locally_lipschitz branch September 26, 2023 14:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated t-analysis Analysis (normed *, calculus) t-topology Topological spaces, uniform spaces, metric spaces, filters
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants