Skip to content

feat: a map is smooth iff its post-composition with an immersion is#28865

Open
grunweg wants to merge 50 commits intoleanprover-community:masterfrom
grunweg:immersions-comp-smoothness
Open

feat: a map is smooth iff its post-composition with an immersion is#28865
grunweg wants to merge 50 commits intoleanprover-community:masterfrom
grunweg:immersions-comp-smoothness

Conversation

@grunweg
Copy link
Copy Markdown
Contributor

@grunweg grunweg commented Aug 24, 2025

The continuous case is mostly solved --- except for one detail where I'm not even sure if this is true.
Maybe!, I need to require continuity, at least in general. (Perhaps not for interior points... we'll see!)

A future PR will use this to golf the results in Icc/Instances.lean.


Open in Gitpod

@grunweg grunweg added WIP Work in progress blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) t-differential-geometry Manifolds etc labels Aug 24, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Aug 24, 2025

PR summary cefe7b7756

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.Geometry.Manifold.IsImmersionEmbedding (new file) 2067

Declarations diff

+ ContDiffWithinAt.congr'
+ ContMDiffAt.iff_comp_isImmersionAt
+ Continuous.of_comp_iff_isInducing_restr
+ IsEmbedding.subtype_map_of_subset
+ IsImmersion
+ IsImmersionAt
+ StructureGroupoid.subtypeRestr_mem_maximalAtlas
+ _root_.Set.EqOn.prodMap
+ aux1
+ aux2
+ codChart
+ codChart_mem_maximalAtlas
+ congr
+ congr_of_eventuallyEq
+ contDiffAt_prod_iff
+ contDiffOn_prod_iff
+ contDiff_prod_iff
+ contMDiff
+ contMDiffAt
+ contMDiffAt_iff_of_mem_maximalAtlas
+ contMDiffAt_writtenInExtend_iff
+ contMDiffOn_extend
+ contMDiffWithinAt_writtenInExtend_iff
+ continuousAt
+ continuousAt_iff_comp_isImmersionAt
+ domChart
+ domChart_mem_maximalAtlas
+ eqOn_domChart_source
+ equiv
+ exists_nbhd_restr_isEmbedding
+ extend_prod
+ extend_target_eq_image_source
+ foo
+ isClosedEmbedding_symm_restrict
+ isEmbedding_extend_restrict
+ isEmbedding_extend_symm_restrict
+ isEmbedding_symm_restrict
+ isImmersionAt
+ map_source_subset_source
+ map_target_subset_target
+ mem_codChart_source
+ mem_domChart_source
+ mem_maximalAtlas_prod
+ mk_of_continuousAt
+ nhds_eq_comap
+ prod_symm_trans_prod
+ restr_eqOnSource_restr
+ restr_inter_source
+ restr_mem_maximalAtlas
+ restr_mem_maximalAtlas_aux1
+ restr_mem_maximalAtlas_aux2
+ restr_symm_trans
+ rightInverse_restrict
+ symm_trans_restr
+ writtenInCharts
++ aux
++ contMDiffOn_writtenInExtend_iff
++ prodMap

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) = (3.00, 0.75)
Current number Change Type
4 3 large files

Current commit 9b9519edc6
Reference commit cefe7b7756

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
Copy link
Copy Markdown
Collaborator

mathlib4-dependent-issues-bot commented Aug 24, 2025

@grunweg grunweg force-pushed the immersions-comp-smoothness branch from 94de9ce to b70360f Compare August 28, 2025 09:39
@grunweg grunweg force-pushed the immersions-comp-smoothness branch from b70360f to cda7f72 Compare August 28, 2025 12:06
@mathlib4-merge-conflict-bot mathlib4-merge-conflict-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Sep 8, 2025
@mathlib4-merge-conflict-bot
Copy link
Copy Markdown
Collaborator

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

lemma ContMDiffAt.iff_comp_isImmersionAt
[IsManifold I n M] [IsManifold J n N] [IsManifold J' n N']
{f : M → N} {φ : N → N'} (h : IsImmersionAt F J J' n φ (f x))
(hf : ContinuousAt f x) : -- TODO: is this hypothesis needed?
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

At least globally, this condition is indeed necessary - when a φ satisfies this even for discontinuous f it means in particular that any function to a fibre of φ is smooth, so φ has to be injective. If you then take f to be the map from the image of φ to the domain of φ that you get from injectivity you can even show that φ has to be an embedding. I haven't thought about the local variant of this much but assume it is similar.

Copy link
Copy Markdown
Collaborator

@peabrainiac peabrainiac Dec 12, 2025

Choose a reason for hiding this comment

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

Actually I'm not sure the last step of what I said works, because the image of an injective immersion is not always a submanifold... either way, without assuming continuity this definitely won't hold for most immersions.

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.

4 participants