Skip to content

[Merged by Bors] - feat(Topology): Introduce HomeomorphClass#18689

Closed
Thmoas-Guan wants to merge 16 commits intomasterfrom
HomeomorphClass
Closed

[Merged by Bors] - feat(Topology): Introduce HomeomorphClass#18689
Thmoas-Guan wants to merge 16 commits intomasterfrom
HomeomorphClass

Conversation

@Thmoas-Guan
Copy link
Copy Markdown
Collaborator

Introduce HomeomorphClass


Open in Gitpod

@github-actions github-actions bot added the t-topology Topological spaces, uniform spaces, metric spaces, filters label Nov 6, 2024
@github-actions
Copy link
Copy Markdown

github-actions bot commented Nov 6, 2024

PR summary 2c2e1f18d6

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.Topology.Homeomorph 699 700 +1 (+0.14%)
Import changes for all files
Files Import difference
79 files Mathlib.Topology.Instances.Nat Mathlib.Topology.MetricSpace.Antilipschitz Mathlib.Analysis.Polynomial.CauchyBound Mathlib.Algebra.Order.Hom.Ultra Mathlib.Topology.Instances.PNat Mathlib.Topology.MetricSpace.ShrinkingLemma Mathlib.Topology.Instances.Int Mathlib.Topology.MetricSpace.Pseudo.Real Mathlib.Topology.ExtremallyDisconnected Mathlib.Topology.MetricSpace.Sequences Mathlib.Analysis.BoxIntegral.Box.Basic Mathlib.Analysis.Oscillation Mathlib.LinearAlgebra.Matrix.Gershgorin Mathlib.Topology.Algebra.ProperAction.Basic Mathlib.Topology.MetricSpace.Cauchy Mathlib.Topology.MetricSpace.Pseudo.Basic Mathlib.Topology.Sequences Mathlib.Analysis.Normed.Field.Basic Mathlib.Topology.Order.LowerUpperTopology Mathlib.Topology.UniformSpace.AbstractCompletion Mathlib.Topology.Maps.Proper.Basic Mathlib.Topology.UniformSpace.CompleteSeparated Mathlib.Topology.MetricSpace.ProperSpace Mathlib.Topology.Homeomorph Mathlib.Topology.MetricSpace.Pseudo.Pi Mathlib.Topology.MetricSpace.Equicontinuity Mathlib.Topology.MetricSpace.Ultra.Basic Mathlib.Topology.MetricSpace.Isometry Mathlib.Topology.Algebra.MulAction Mathlib.Topology.MetricSpace.Infsep Mathlib.Topology.Compactness.PseudometrizableLindelof Mathlib.Analysis.NormedSpace.MStructure Mathlib.Analysis.BoxIntegral.Partition.Tagged Mathlib.Topology.Algebra.ProperConstSMul Mathlib.Topology.Algebra.ConstMulAction Mathlib.Topology.Algebra.InfiniteSum.Field Mathlib.Topology.MetricSpace.Pseudo.Lemmas Mathlib.Topology.EMetricSpace.Basic Mathlib.Analysis.Normed.Group.Bounded Mathlib.Topology.UniformSpace.UniformEmbedding Mathlib.Topology.UniformSpace.Completion Mathlib.Topology.Metrizable.Basic Mathlib.Analysis.Normed.Group.Int Mathlib.Algebra.Order.Hom.Normed Mathlib.Topology.UniformSpace.UniformConvergence Mathlib.Topology.Algebra.Constructions Mathlib.Topology.UniformSpace.Cauchy Mathlib.Topology.MetricSpace.CauSeqFilter Mathlib.Topology.EMetricSpace.Diam Mathlib.Dynamics.Minimal Mathlib.Topology.MetricSpace.Basic Mathlib.Topology.Maps.Proper.UniversallyClosed Mathlib.Topology.EMetricSpace.Lipschitz Mathlib.Topology.MetricSpace.Gluing Mathlib.Topology.UniformSpace.HeineCantor Mathlib.Analysis.BoxIntegral.Partition.Basic Mathlib.Topology.EMetricSpace.Paracompact Mathlib.Analysis.CStarAlgebra.Module.Synonym Mathlib.Topology.FiberBundle.IsHomeomorphicTrivialBundle Mathlib.Topology.UniformSpace.Pi Mathlib.Topology.MetricSpace.ProperSpace.Lemmas Mathlib.Topology.EMetricSpace.Pi Mathlib.InformationTheory.Hamming Mathlib.NumberTheory.DirichletCharacter.Bounds Mathlib.Analysis.Normed.Group.Submodule Mathlib.Topology.Compactness.Paracompact Mathlib.Analysis.NormedSpace.IndicatorFunction Mathlib.Analysis.Normed.Group.Constructions Mathlib.Topology.UniformSpace.UniformConvergenceTopology Mathlib.Topology.Metrizable.Uniformity Mathlib.Topology.UniformSpace.Equicontinuity Mathlib.Topology.Algebra.Constructions.DomMulAct Mathlib.Analysis.BoxIntegral.Partition.Split Mathlib.Topology.MetricSpace.Ultra.TotallySeparated Mathlib.Topology.Order.MonotoneContinuity Mathlib.Topology.UniformSpace.Equiv Mathlib.Analysis.Normed.Group.Basic Mathlib.Topology.MetricSpace.Pseudo.Constructions Mathlib.Topology.MetricSpace.Bounded
1

Declarations diff

+ HomeomorphClass
+ coe_coe
+ instance (priority := 100) [EquivLike F M M₂]
+ instance : HomeomorphClass (α ≃ₜ β) α β
+ instance [HomeomorphClass F α β] : CoeOut F (α ≃ₜ β)
+ instance [HomeomorphClass F α β] : ContinuousMapClass F α β
+ toHomeomorph
+ toHomeomorph_injective

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

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.

Thanks for this addition! Can you please also add the analogue of this lemma, and address my comments below?

@[simp]
theorem RingHom.coe_coe {α : Type u_2} {β : Type u_3} :
∀ {x : NonAssocSemiring α} {x_1 : NonAssocSemiring β} {F : Type u_5} [inst : FunLike F α β]
  [inst_1 : RingHomClass F α β] (f : F), ⇑↑f = ⇑f

@j-loreaux j-loreaux added the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 6, 2024
@Thmoas-Guan Thmoas-Guan removed the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 7, 2024
@astrainfinita
Copy link
Copy Markdown
Collaborator

I would say that an instance to ContinuousMapClass should be provided, but I'm surprised that this file doesn't import Topology.ContinuousMap.Defs.

@Thmoas-Guan
Copy link
Copy Markdown
Collaborator Author

ContinuousMapClass

So where should I add this, I have no idea.

also fix naming to make it consistent with current naming
@j-loreaux
Copy link
Copy Markdown
Contributor

j-loreaux commented Nov 11, 2024

I think it's fine to import Topology.ContinuousMap.Defs here. It's lightweight and this file is pretty large and should probably be split at some point in the future anyway.

@j-loreaux j-loreaux added the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 11, 2024
@Thmoas-Guan
Copy link
Copy Markdown
Collaborator Author

I think it's fine to import Topology.ContinuousMap.Defs here. It's lightweight and this file is pretty large and should probably be split at some point in the future anyway.

I think this PR is relative small, and I don't think leave it there and just let the mess grow is a very good idea, what about I just split Homeomorph.lean in this PR or I start a new one about it right now and resolve it once and for all. This would probably also unwind the import graph a bit.

@j-loreaux
Copy link
Copy Markdown
Contributor

If you want to make a new PR splitting this file, go for it. I just didn't want to force you to do it.

I would suggest doing this in stages. First, create a PR which moves this to Mathlib/Topology/Homeomorph/Basic.lean. Then create a second PR which splits that file into (at least) a Defs file and maybe some others.

add import for now, need more design on splitting this file
@Thmoas-Guan
Copy link
Copy Markdown
Collaborator Author

Thmoas-Guan commented Nov 13, 2024

I just add this import for now, I'll deal the splitting latter.
Another question: should I add the coercion from HomeomorphClass F A B to ContinuousMapClass F B A (the other side)?

@Thmoas-Guan Thmoas-Guan removed the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 13, 2024
@j-loreaux
Copy link
Copy Markdown
Contributor

No, that would break things.

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.

Can you please add instances of this class downstream (e.g., for ContinuousSemilinearEquivClass, and anything else that makes sense)?

@j-loreaux j-loreaux added the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 13, 2024
@Thmoas-Guan
Copy link
Copy Markdown
Collaborator Author

Sorry that I am not familiar with these things and doesn't know what things look like downsteam, beside, is ContinuousSemilinearEquivClass you mentioned also mixing algebra and topology and should be reconstructed? If so, that would be a big work and I probably wouldn't be able to work on it soon.

@Thmoas-Guan Thmoas-Guan removed the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 14, 2024
@j-loreaux
Copy link
Copy Markdown
Contributor

Don't worry about refactoring ContinuousSemilinearEquivClass. All I'm asking for is an instance ContinuousSemilinearEquivClassHomeomorphClass.

@j-loreaux j-loreaux added the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 14, 2024
@Thmoas-Guan
Copy link
Copy Markdown
Collaborator Author

Added for now, but I am asking for the refactoring of it.

@Thmoas-Guan Thmoas-Guan removed the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 15, 2024
@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 Dec 1, 2024
@leanprover-community-bot-assistant leanprover-community-bot-assistant removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Dec 3, 2024
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.

Thanks!

maintainer merge

@github-actions
Copy link
Copy Markdown

🚀 Pull request has been placed on the maintainer queue by j-loreaux.

@github-actions github-actions bot added the maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. label Dec 16, 2024
Copy link
Copy Markdown
Contributor

@Vierkantor Vierkantor left a comment

Choose a reason for hiding this comment

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

Coming back to this to confirm that this looks good, FunLike-wise. I'd like to ask a topology maintainer to make the final decision.

Copy link
Copy Markdown
Member

@jcommelin jcommelin 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 merge

@ghost ghost added the ready-to-merge This PR has been sent to bors. label Dec 16, 2024
mathlib-bors bot pushed a commit that referenced this pull request Dec 16, 2024
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Dec 16, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(Topology): Introduce HomeomorphClass [Merged by Bors] - feat(Topology): Introduce HomeomorphClass Dec 16, 2024
@mathlib-bors mathlib-bors bot closed this Dec 16, 2024
@mathlib-bors mathlib-bors bot deleted the HomeomorphClass branch December 16, 2024 13:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. ready-to-merge This PR has been sent to bors. t-topology Topological spaces, uniform spaces, metric spaces, filters

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants