Skip to content

feat: define SliceModel typeclass for models with corners for embedded submanifolds#24550

Closed
grunweg wants to merge 76 commits intomasterfrom
MR-slicemodels
Closed

feat: define SliceModel typeclass for models with corners for embedded submanifolds#24550
grunweg wants to merge 76 commits intomasterfrom
MR-slicemodels

Conversation

@grunweg
Copy link
Copy Markdown
Contributor

@grunweg grunweg commented May 2, 2025

Still work in progress: TODO write a proper module doc-string and commit message.


Open in Gitpod

grunweg added 30 commits March 17, 2025 22:41
Sadly, we cannot prove most nice things about them yet, as we don't have
the inverse function theorem yet.
I'd merely like to ask for equality on the source of the inverse extChart
In finite dimensions, that certainly holds; need to think about inf-dim
The naive proof certainly fails (we get a coordinate change between the
two charts in the middle, which can be anything, and need not be linear at
all). Can we always "modify" a slice chart to match a modification downstairs?
I presume no, but would need to think...
@grunweg grunweg added WIP Work in progress t-differential-geometry Manifolds etc labels May 2, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented May 2, 2025

PR summary c7eef3587d

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.Analysis.NormedSpace.HahnBanach.Splits (new file) 1863
Mathlib.Geometry.Manifold.MSplits (new file) 1957
Mathlib.Geometry.Manifold.IsImmersionEmbedding (new file) 1958
Mathlib.Geometry.Manifold.SliceModel (new file) 1960

Declarations diff

+ ContinuousLinearMap.Splits
+ IsImmersion
+ IsImmersionAt
+ IsLocalDiffeomorphAt.mfderiv_toContinuousLinearEquiv
+ IsSmoothEmbedding
+ LeftInverse.of_composition
+ MSplits
+ MSplitsAt
+ RightInverse.of_composition
+ SliceModel
+ Submodule.ClosedComplemented.prod
+ Submodule.sum_assoc
+ _root_.ContinuousLinearEquiv.splits
+ _root_.Diffeomorph.splits
+ _root_.IsLocalDiffeomorph.splits
+ _root_.IsLocalDiffeomorphAt.msplitsAt
+ _root_.Submodule.map_add
+ _root_.isImmersionAt_iff_msplitsAt
+ antilipschitzConstant
+ antilipschitzWith
+ antilipschitz_aux
+ closedComplemented
+ codChart
+ codChart_mem_maximalAtlas
+ compCLE_left
+ compCLE_right
+ comp_diffeomorph_left_iff
+ comp_diffeomorph_right_iff
+ comp_isLocalDiffeomorphAt_left
+ comp_isLocalDiffeomorphAt_left_iff
+ comp_isLocalDiffeomorphAt_right
+ comp_isLocalDiffeomorphAt_right_iff
+ comp_isLocalDiffeomorph_left
+ comp_isLocalDiffeomorph_right
+ complement
+ complement_isClosed
+ complement_isCompl
+ congr_of_eventuallyEq
+ contMDiffAt
+ continuousWithinAt
+ disjoint_aux
+ domChart
+ domChart_mem_maximalAtlas
+ equiv
+ extend
+ extend_mfderiv_toContinousLinearEquiv
+ extend_mfderiv_toContinousLinearEquiv_coe
+ extend_symm
+ extend_symm_mfderiv_toContinousLinearEquiv
+ extend_symm_mfderiv_toContinousLinearEquiv_coe
+ injective
+ instTrans
+ instance (h : (E × F) ≃L[𝕜] E') : SliceModel F (𝓘(𝕜, E)) (𝓘(𝕜, E'))
+ instance : SliceModel (⊥ : Subspace 𝕜 E) I I
+ instance [h : SliceModel F I I'] : SliceModel F (I.prod J) (I'.prod J)
+ instance [h : SliceModel F I I'] : SliceModel F (J.prod I) (J.prod I')
+ instance {I : ModelWithCorners 𝕜 E H} (hI : IsEmbedding I) :
+ instance {n m : ℕ} [NeZero n] :
+ inverse
+ inverse_left_inv
+ inverse_right_inv
+ isClosedMap
+ isClosed_range
+ isEmbedding
+ isImmersion
+ isImmersionAt
+ mdifferentiableAt
+ mdifferentiableAt_of_mfderiv_injective
+ mem_codChart_source
+ mem_domChart_source
+ mfderiv_toContinuousLinearEquiv_coe
+ msplitsAt
+ of_finiteDimensional_of_mfderiv_injective
+ of_injective_of_finiteDimensional'
+ of_injective_of_finiteDimensional_of_completeSpace
+ of_mfderiv_injective
+ of_mfderiv_injective_of_compactSpace_of_T2Space
+ prodAssoc
+ prodAssoc_toEquiv
+ prodAssoc_toLinearEquiv
+ prodSingle_coe
+ prodUnique_apply
+ prodUnique_symm_apply
+ range_prodMap
+ writtenInCharts
++ contMDiff
++ continuousAt
++ foo
++ instance {n : ℕ} [NeZero n] :
++ of_injective_of_finiteDimensional
++ prodUnique
++ prodUnique_toEquiv
+++ mfderiv_injective
++++ congr
+++++ prodMap
++++++ comp

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.


Increase in tech debt: (relative, absolute) = (2.00, 0.00)
Current number Change Type
922 2 erw

Current commit c7eef3587d
Reference commit ddb4ebecc0

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

@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label May 2, 2025
@mathlib4-dependent-issues-bot
Copy link
Copy Markdown
Collaborator

This PR/issue depends on:

grunweg added a commit that referenced this pull request May 6, 2025
These were needed for #24550, which is a step towards defining smooth submanifolds.
@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 May 8, 2025
@leanprover-community-bot-assistant
Copy link
Copy Markdown
Collaborator

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

mathlib-bors bot pushed a commit that referenced this pull request Jun 19, 2025
which are `LinearEquiv.{prodUnique,uniqueProd}` as a continuous linear equivalence.

Discovered when working on slice models for defining submanifolds (#24550), one step towards defining smooth submanifolds.

This PR continues the work from #23971.
Rida-Hamadani pushed a commit to Rida-Hamadani/mathlib4 that referenced this pull request Jun 24, 2025
…nity#26083)

which are `LinearEquiv.{prodUnique,uniqueProd}` as a continuous linear equivalence.

Discovered when working on slice models for defining submanifolds (leanprover-community#24550), one step towards defining smooth submanifolds.

This PR continues the work from leanprover-community#23971.
joelriou pushed a commit to joelriou/mathlib4 that referenced this pull request Jul 7, 2025
…nity#26083)

which are `LinearEquiv.{prodUnique,uniqueProd}` as a continuous linear equivalence.

Discovered when working on slice models for defining submanifolds (leanprover-community#24550), one step towards defining smooth submanifolds.

This PR continues the work from leanprover-community#23971.
callesonne pushed a commit to callesonne/mathlib4 that referenced this pull request Jul 24, 2025
…nity#26083)

which are `LinearEquiv.{prodUnique,uniqueProd}` as a continuous linear equivalence.

Discovered when working on slice models for defining submanifolds (leanprover-community#24550), one step towards defining smooth submanifolds.

This PR continues the work from leanprover-community#23971.
@grunweg
Copy link
Copy Markdown
Contributor Author

grunweg commented Feb 15, 2026

Closing in favour of #26087.

@grunweg grunweg closed this Feb 15, 2026
@grunweg grunweg deleted the MR-slicemodels branch February 15, 2026 12:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) t-differential-geometry Manifolds etc WIP Work in progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants