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: add a TietzeExtension class #9788

Closed
wants to merge 14 commits into from

Conversation

j-loreaux
Copy link
Collaborator

@j-loreaux j-loreaux commented Jan 16, 2024

This adds a class TietzeExtension to encode the Tietze extension theorem as a type class that can be satisfied by various types. For now, we provide instances for , ℝ≥0, , IsROrC 𝕜, pi types, product types, as well as constructors via homeomorphisms or retracts of a TietzeExtension space, and also a constructor for finite dimensional topological vector spaces.


Open in Gitpod

@j-loreaux j-loreaux added awaiting-review The author would like community review of the PR t-topology Topological spaces, uniform spaces, metric spaces, filters labels Jan 16, 2024
@j-loreaux j-loreaux changed the title feat: add a TietzeExtension class feat: add a TietzeExtension class Jan 16, 2024
@ADedecker
Copy link
Member

ADedecker commented Jan 16, 2024

I'll give this a deeper look soon, but a first comment:

note: we'll leave IsROrC 𝕜 for a future PR because this is a rare case where we're going to do things backwards and prove it first for ℝ and ℂ, and then use those for the IsROrC version.

Why not provide an instance/reducible-def for finite dimensional T2 real TVS, by reducing it to products using LinearEquiv.toContinuousLinearEquiv. Then it will apply directly to IsROrC, right?

@urkud urkud added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review The author would like community review of the PR labels Jan 17, 2024
@j-loreaux
Copy link
Collaborator Author

j-loreaux commented Jan 22, 2024

@ADedecker I've implemented your nice suggestion. It can't be an instance because there is no way for Lean to know which scalar field is intended, so it's just a theorem.

Optionally, I could provide in additional an actual instance, where the scalar field is just assumed to be IsROrC. This would allow us to get TietzeExtension (EuclideanSpace 𝕜 n) for free. (EDIT: I've added this instance)

@j-loreaux j-loreaux added awaiting-review The author would like community review of the PR and removed awaiting-author A reviewer has asked the author a question or requested changes labels Jan 22, 2024
@j-loreaux j-loreaux added awaiting-author A reviewer has asked the author a question or requested changes and removed awaiting-review The author would like community review of the PR labels Jan 23, 2024
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. label Feb 1, 2024
@j-loreaux j-loreaux added awaiting-review The author would like community review of the PR and removed awaiting-author A reviewer has asked the author a question or requested changes labels Feb 14, 2024
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. label Feb 14, 2024
@jcommelin
Copy link
Member

Thanks 🎉

bors merge

@github-actions github-actions bot added ready-to-merge This PR has been sent to bors. and removed awaiting-review The author would like community review of the PR labels Feb 15, 2024
mathlib-bors bot pushed a commit that referenced this pull request Feb 15, 2024
This adds a class `TietzeExtension` to encode the Tietze extension theorem as a type class that can be satisfied by various types. For now, we provide instances for `ℝ`, `ℝ≥0`, `ℂ`, `IsROrC 𝕜`, pi types, product types, as well as constructors via homeomorphisms or retracts of a `TietzeExtension` space, and also a constructor for finite dimensional topological vector spaces.
@mathlib-bors
Copy link

mathlib-bors bot commented Feb 15, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat: add a TietzeExtension class [Merged by Bors] - feat: add a TietzeExtension class Feb 15, 2024
@mathlib-bors mathlib-bors bot closed this Feb 15, 2024
@mathlib-bors mathlib-bors bot deleted the j-loreaux/TietzeExtension branch February 15, 2024 17:31
riccardobrasca pushed a commit that referenced this pull request Feb 18, 2024
This adds a class `TietzeExtension` to encode the Tietze extension theorem as a type class that can be satisfied by various types. For now, we provide instances for `ℝ`, `ℝ≥0`, `ℂ`, `IsROrC 𝕜`, pi types, product types, as well as constructors via homeomorphisms or retracts of a `TietzeExtension` space, and also a constructor for finite dimensional topological vector spaces.
dagurtomas pushed a commit that referenced this pull request Mar 22, 2024
This adds a class `TietzeExtension` to encode the Tietze extension theorem as a type class that can be satisfied by various types. For now, we provide instances for `ℝ`, `ℝ≥0`, `ℂ`, `IsROrC 𝕜`, pi types, product types, as well as constructors via homeomorphisms or retracts of a `TietzeExtension` space, and also a constructor for finite dimensional topological vector spaces.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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.

None yet

5 participants