Documentation

TauCeti.Geometry.Manifold.LocalDiffeomorph.Basic

The inverse function theorem for manifolds #

Mathlib knows that a C^n local diffeomorphism has invertible differentials (IsLocalDiffeomorphAt.mfderivToContinuousLinearEquiv) and lists the converse as a TODO in Mathlib/Geometry/Manifold/LocalDiffeomorph.lean. This file proves that converse at interior points of Banach manifolds: a map which is C^n on an open set, with 1 โ‰ค n, and whose mfderiv at a point of that set is a continuous linear equivalence, is a C^n local diffeomorphism there.

The interior-point form applies to maps between manifolds with boundary whenever the source point lies away from the boundary; invertibility of the differential then forces its image to be an interior point as well. On a boundaryless source manifold the source condition is automatic, even when either ambient model has boundary, yielding the usual global criterion from invertibility of every differential.

The file also records that maximal-atlas charts and their inverses are local diffeomorphisms, and that being a local diffeomorphism at a point is an open condition: the partial diffeomorphism witnessing it at one point witnesses it at every nearby point, and that a local diffeomorphism can be cancelled on either side of a composite local diffeomorphism. Conversely, an open partial homeomorphism to the model space which is a local diffeomorphism on its source is a chart of the maximal atlas.

The extended-chart constructor lets maximal-atlas coordinates, including Frobenius flat charts, serve as partial diffeomorphisms in constructions of local submanifolds.

Main results #

A maximal-atlas chart for a boundaryless model, followed by the model, as a partial diffeomorphism to the model vector space.

Instances For
    @[simp]

    Extending a maximal-atlas chart preserves its source.

    @[simp]

    The target of the extended chart is read through the inverse model.

    The extended chart is the chart followed by the model.

    @[simp]
    theorem OpenPartialHomeomorph.toPartialDiffeomorphOfMemMaximalAtlas_apply {๐•œ : Type u_1} {E : Type u_2} {H : Type u_3} {M : Type u_4} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup E] [NormedSpace ๐•œ E] [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} [I.Boundaryless] [TopologicalSpace M] [ChartedSpace H M] {n : WithTop โ„•โˆž} (e : OpenPartialHomeomorph M H) (he : e โˆˆ IsManifold.maximalAtlas I n M) (x : M) :
    โ†‘(e.toPartialDiffeomorphOfMemMaximalAtlas he).toPartialEquiv x = โ†‘I (โ†‘e x)

    The extended maximal-atlas chart evaluates as the model applied to the original chart.

    @[simp]
    theorem OpenPartialHomeomorph.toPartialDiffeomorphOfMemMaximalAtlas_symm_apply {๐•œ : Type u_1} {E : Type u_2} {H : Type u_3} {M : Type u_4} [NontriviallyNormedField ๐•œ] [NormedAddCommGroup E] [NormedSpace ๐•œ E] [TopologicalSpace H] {I : ModelWithCorners ๐•œ E H} [I.Boundaryless] [TopologicalSpace M] [ChartedSpace H M] {n : WithTop โ„•โˆž} (e : OpenPartialHomeomorph M H) (he : e โˆˆ IsManifold.maximalAtlas I n M) (v : E) :
    โ†‘(e.toPartialDiffeomorphOfMemMaximalAtlas he).symm v = โ†‘e.symm (โ†‘I.symm v)

    The inverse extended chart is the inverse model followed by the inverse chart.

    The inverse partial diffeomorphism of the extended maximal-atlas chart is the inverse of the extended chart.

    @[simp]
    theorem IsLocalDiffeomorph.coe_diffeomorphOfBijective {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} {f : M โ†’ N} (hf : IsLocalDiffeomorph I J n f) (hf' : Function.Bijective f) :
    โ‡‘(hf.diffeomorphOfBijective hf') = f

    The diffeomorphism associated to a bijective local diffeomorphism has the given forward map. This computation rule lets callers use the constructor without unfolding its choice of inverse.

    theorem IsLocalDiffeomorphAt.range_mfderiv_comp {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} {E' : Type u_8} {H' : Type u_9} {P : Type u_10} [NormedAddCommGroup E'] [NormedSpace ๐•‚ E'] [TopologicalSpace H'] {K : ModelWithCorners ๐•‚ E' H'} [TopologicalSpace P] [ChartedSpace H' P] {ฯ† : M โ†’ N} {g : N โ†’ P} {x : M} (hฯ† : IsLocalDiffeomorphAt I J n ฯ† x) (hn : n โ‰  0) :
    (โ†‘(mfderiv% (g โˆ˜ ฯ†) x)).range = (โ†‘(mfderiv% g (ฯ† x))).range

    Precomposing a map with a local diffeomorphism does not change the image of its differential. No differentiability of g is assumed: when g is not differentiable at ฯ† x, neither is g โˆ˜ ฯ† at x, and both differentials are zero.

    def TauCeti.extChartPartialDiffeomorph {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {H : Type u_4} [TopologicalSpace H] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] (I : ModelWithCorners ๐•‚ E H) (n : WithTop โ„•โˆž) [IsManifold I n M] (x : M) :

    The extended chart at x, restricted to the interior of its target and regarded as a partial diffeomorphism from M to the model space E.

    Instances For
      theorem TauCeti.extChartPartialDiffeomorph_source {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {H : Type u_4} [TopologicalSpace H] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] (I : ModelWithCorners ๐•‚ E H) (n : WithTop โ„•โˆž) [IsManifold I n M] (x : M) :

      The source of the restricted extended chart consists of points in the original chart source whose chart coordinates lie in the interior of the chart target.

      @[simp]

      The center of the restricted extended chart belongs to its source exactly when it is an interior point of the manifold.

      @[simp]
      theorem TauCeti.extChartPartialDiffeomorph_target {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {H : Type u_4} [TopologicalSpace H] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] (I : ModelWithCorners ๐•‚ E H) (n : WithTop โ„•โˆž) [IsManifold I n M] (x : M) :

      The target of the restricted extended chart is the interior of the original chart target.

      @[simp]
      theorem TauCeti.coe_extChartPartialDiffeomorph {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {H : Type u_4} [TopologicalSpace H] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] (I : ModelWithCorners ๐•‚ E H) (n : WithTop โ„•โˆž) [IsManifold I n M] (x : M) :

      The forward function of the restricted extended chart agrees with the original extended chart.

      @[simp]
      theorem TauCeti.extChartPartialDiffeomorph_symm_apply {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {H : Type u_4} [TopologicalSpace H] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] (I : ModelWithCorners ๐•‚ E H) (n : WithTop โ„•โˆž) [IsManifold I n M] (x : M) (y : E) :
      โ†‘(extChartPartialDiffeomorph I n x).symm y = โ†‘(extChartAt I x).symm y

      The inverse of the restricted extended chart agrees pointwise with the inverse extended chart.

      theorem TauCeti.exists_partialDiffeomorph_comp_extChartAt {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {H : Type u_4} [TopologicalSpace H] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] (I : ModelWithCorners ๐•‚ E H) (n : WithTop โ„•โˆž) [IsManifold I n M] (xโ‚€ : M) {Vโ‚€ : Set E} (hVโ‚€ : IsOpen Vโ‚€) (hVโ‚€W : Vโ‚€ โІ interior (extChartAt I xโ‚€).target) (hn : 1 โ‰ค n) (ฮฆ : Diffeomorph (modelWithCornersSelf ๐•‚ E) (modelWithCornersSelf ๐•‚ E) E E n) :
      โˆƒ (chart : PartialDiffeomorph I (modelWithCornersSelf ๐•‚ E) M E n), chart.source = (extChartAt I xโ‚€).source โˆฉ โ†‘(extChartAt I xโ‚€) โปยน' Vโ‚€ โˆง (โˆ€ (y : M), โ†‘chart.toPartialEquiv y = ฮฆ (โ†‘(extChartAt I xโ‚€) y)) โˆง โˆ€ x โˆˆ chart.source, โˆ€ (u : TangentSpace I x), (d% โ†‘chart.toPartialEquiv x) u = (fderiv ๐•‚ (โ‡‘ฮฆ) (โ†‘(extChartAt I xโ‚€) x)) ((d% โ†‘(extChartAt I xโ‚€) x) u)

      A diffeomorphism of the model space, composed with the extended chart at xโ‚€ restricted to the preimage of an open set Vโ‚€ inside the interior of the chart target, is a C^n partial diffeomorphism with source the restricted chart source, and its differential at a point of the source is the differential of the diffeomorphism after that of the extended chart.

      def TauCeti.PartialDiffeomorph.ofOpenPartialHomeomorph {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {n : WithTop โ„•โˆž} (ฮ˜ : OpenPartialHomeomorph E F) (hฮ˜ : ContDiffOn ๐•‚ n (โ†‘ฮ˜) ฮ˜.source) (hฮ˜symm : ContDiffOn ๐•‚ n (โ†‘ฮ˜.symm) ฮ˜.target) :

      An open partial homeomorphism between model spaces which is C^n in both directions is a partial diffeomorphism.

      Instances For
        @[simp]
        theorem TauCeti.PartialDiffeomorph.ofOpenPartialHomeomorph_toPartialEquiv {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {n : WithTop โ„•โˆž} (ฮ˜ : OpenPartialHomeomorph E F) (hฮ˜ : ContDiffOn ๐•‚ n (โ†‘ฮ˜) ฮ˜.source) (hฮ˜symm : ContDiffOn ๐•‚ n (โ†‘ฮ˜.symm) ฮ˜.target) :
        (ofOpenPartialHomeomorph ฮ˜ hฮ˜ hฮ˜symm).toPartialEquiv = ฮ˜.toPartialEquiv
        theorem TauCeti.isLocalDiffeomorphAt_of_eqOn {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} {ฮฆ : PartialDiffeomorph I J M N n} {f : M โ†’ N} {x : M} (hx : x โˆˆ ฮฆ.source) (hf : Set.EqOn f (โ†‘ฮฆ.toPartialEquiv) ฮฆ.source) :

        A map agreeing with a partial diffeomorphism on its source is a C^n local diffeomorphism at every point of that source.

        theorem OpenPartialHomeomorph.isLocalDiffeomorphAt_of_mem_maximalAtlas {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {H : Type u_4} [TopologicalSpace H] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {I : ModelWithCorners ๐•‚ E H} {n : WithTop โ„•โˆž} (e : OpenPartialHomeomorph M H) (he : e โˆˆ IsManifold.maximalAtlas I n M) {x : M} (hx : x โˆˆ e.source) :
        IsLocalDiffeomorphAt I I n (โ†‘e) x

        A chart in the C^n maximal atlas is a local diffeomorphism at every point of its source.

        theorem OpenPartialHomeomorph.isLocalDiffeomorphAt_symm_of_mem_maximalAtlas {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {H : Type u_4} [TopologicalSpace H] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {I : ModelWithCorners ๐•‚ E H} {n : WithTop โ„•โˆž} (e : OpenPartialHomeomorph M H) (he : e โˆˆ IsManifold.maximalAtlas I n M) {y : H} (hy : y โˆˆ e.target) :
        IsLocalDiffeomorphAt I I n (โ†‘e.symm) y

        The inverse of a chart in the C^n maximal atlas is a local diffeomorphism at every point of its target.

        theorem IsManifold.mem_maximalAtlas_iff_forall_isLocalDiffeomorphAt {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {H : Type u_4} [TopologicalSpace H] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {I : ModelWithCorners ๐•‚ E H} {n : WithTop โ„•โˆž} [IsManifold I n M] (e : OpenPartialHomeomorph M H) :
        e โˆˆ maximalAtlas I n M โ†” โˆ€ x โˆˆ e.source, IsLocalDiffeomorphAt I I n (โ†‘e) x

        The maximal atlas consists of the local diffeomorphisms to the model. An open partial homeomorphism to the model space lies in the C^n maximal atlas exactly when it is a C^n local diffeomorphism at every point of its source.

        theorem PartialDiffeomorph.trans_mem_maximalAtlas {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {H : Type u_4} [TopologicalSpace H] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {I : ModelWithCorners ๐•‚ E H} {n : WithTop โ„•โˆž} {N' : Type u_8} [TopologicalSpace N'] [ChartedSpace H N'] [IsManifold I n M] (ฮฆ : PartialDiffeomorph I I M N' n) {e : OpenPartialHomeomorph N' H} (he : e โˆˆ IsManifold.maximalAtlas I n N') :

        A partial diffeomorphism ฮฆ : M โ†’ N' followed by a chart e of the maximal C^n atlas of N' is a chart of the maximal C^n atlas of M.

        theorem IsLocalDiffeomorphAt.exists_mem_maximalAtlas_eventuallyEq {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {H : Type u_4} [TopologicalSpace H] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {I : ModelWithCorners ๐•‚ E H} {n : WithTop โ„•โˆž} {N' : Type u_8} [TopologicalSpace N'] [ChartedSpace H N'] [IsManifold I n M] {f : M โ†’ N'} {x : M} (hf : IsLocalDiffeomorphAt I I n f x) {e : OpenPartialHomeomorph N' H} (he : e โˆˆ IsManifold.maximalAtlas I n N') (hfx : f x โˆˆ e.source) :
        โˆƒ e' โˆˆ IsManifold.maximalAtlas I n M, x โˆˆ e'.source โˆง โ†‘e' =แถ [nhds x] โ†‘e โˆ˜ f

        A chart e of the maximal C^n atlas of N' at f x pulls back along a C^n local diffeomorphism f at x to a chart of the maximal C^n atlas of M at x, which agrees with e โˆ˜ f near x.

        theorem IsLocalDiffeomorphAt.exists_mem_maximalAtlas_extend_eventuallyEq {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {H : Type u_4} [TopologicalSpace H] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {I : ModelWithCorners ๐•‚ E H} {n : WithTop โ„•โˆž} {N' : Type u_8} {Y : Type u_9} [TopologicalSpace N'] [ChartedSpace H N'] [IsManifold I n M] {f : M โ†’ N'} {x : M} (hf : IsLocalDiffeomorphAt I I n f x) {c : OpenPartialHomeomorph N' H} (hc : c โˆˆ IsManifold.maximalAtlas I n N') (hfx : f x โˆˆ c.source) :
        โˆƒ e โˆˆ IsManifold.maximalAtlas I n M, x โˆˆ e.source โˆง โ†‘(e.extend I) x = โ†‘(c.extend I) (f x) โˆง โˆ€ (g : N' โ†’ Y), (g โˆ˜ f) โˆ˜ โ†‘(e.extend I).symm =แถ [nhds (โ†‘(e.extend I) x)] g โˆ˜ โ†‘(c.extend I).symm

        A chart c of the maximal C^n atlas of N' at f x pulls back along a C^n local diffeomorphism f at x to a chart e of the maximal C^n atlas of M at x with the same extended coordinates at x, in which the coordinate expression of every g โˆ˜ f is the coordinate expression of g in c.

        theorem IsLocalDiffeomorphAt.eventually {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} {f : M โ†’ N} {x : M} (hf : IsLocalDiffeomorphAt I J n f x) :

        Being a local diffeomorphism at a point is an open condition. A C^n local diffeomorphism at x is a C^n local diffeomorphism at every nearby point.

        theorem IsLocalDiffeomorphAt.exists_mem_nhds_injOn {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} {f : M โ†’ N} {x : M} (hf : IsLocalDiffeomorphAt I J n f x) :
        โˆƒ t โˆˆ nhds x, Set.InjOn f t

        A local diffeomorphism is locally injective. A C^n local diffeomorphism at x is injective on a neighbourhood of x, where its local inverse is a left inverse.

        theorem Set.InjOn.exists_isOpen_superset_isLocalDiffeomorphOn {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} [T2Space N] {f : M โ†’ N} {K : Set M} (hinj : InjOn f K) (hK : IsCompact K) (hf : โˆ€ x โˆˆ K, IsLocalDiffeomorphAt I J n f x) :
        โˆƒ (U : Set M), IsOpen U โˆง K โІ U โˆง InjOn f U โˆง IsLocalDiffeomorphOn I J n f U

        A local diffeomorphism injective on a compact set is injective near it. A map into a Hausdorff manifold which is injective on a compact set K and a C^n local diffeomorphism at every point of K is injective, and a C^n local diffeomorphism, on an open neighbourhood of K.

        theorem IsLocalDiffeomorphAt.of_comp_right {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} {F' : Type u_8} [NormedAddCommGroup F'] [NormedSpace ๐•‚ F'] {G' : Type u_9} [TopologicalSpace G'] {K : ModelWithCorners ๐•‚ F' G'} {P : Type u_10} [TopologicalSpace P] [ChartedSpace G' P] {e : M โ†’ N} {f : N โ†’ P} {x : M} (hfe : IsLocalDiffeomorphAt I K n (f โˆ˜ e) x) (he : IsLocalDiffeomorphAt I J n e x) :
        IsLocalDiffeomorphAt J K n f (e x)

        Cancelling a local diffeomorphism on the right. If e is a C^n local diffeomorphism at x and f โˆ˜ e is a C^n local diffeomorphism at x, then f is a C^n local diffeomorphism at e x: near e x it is f โˆ˜ e composed with a local inverse of e.

        theorem IsLocalDiffeomorphAt.isLocalDiffeomorphAt_comp_iff {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} {F' : Type u_8} [NormedAddCommGroup F'] [NormedSpace ๐•‚ F'] {G' : Type u_9} [TopologicalSpace G'] {K : ModelWithCorners ๐•‚ F' G'} {P : Type u_10} [TopologicalSpace P] [ChartedSpace G' P] {e : M โ†’ N} {f : N โ†’ P} {x : M} (he : IsLocalDiffeomorphAt I J n e x) :

        Composing with a local diffeomorphism on the right. If e is a C^n local diffeomorphism at x, then f โˆ˜ e is a C^n local diffeomorphism at x exactly when f is one at e x.

        theorem IsLocalDiffeomorphAt.of_comp_left {๐•‚ : Type u_1} [NontriviallyNormedField ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} {F' : Type u_8} [NormedAddCommGroup F'] [NormedSpace ๐•‚ F'] {G' : Type u_9} [TopologicalSpace G'] {K : ModelWithCorners ๐•‚ F' G'} {P : Type u_10} [TopologicalSpace P] [ChartedSpace G' P] {e : M โ†’ N} {f : N โ†’ P} {x : M} (hfe : IsLocalDiffeomorphAt I K n (f โˆ˜ e) x) (hf : IsLocalDiffeomorphAt J K n f (e x)) (he : ContinuousAt e x) :

        Cancelling a local diffeomorphism on the left. If f is a C^n local diffeomorphism at e x, the map e is continuous at x, and f โˆ˜ e is a C^n local diffeomorphism at x, then e is a C^n local diffeomorphism at x: near x it is f โˆ˜ e followed by a local inverse of f. Continuity of e cannot be dropped, since it is what keeps e near x inside the domain of that local inverse.

        theorem TauCeti.isLocalDiffeomorphAt_of_mfderiv_eq {๐•‚ : Type u_1} [RCLike ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] [CompleteSpace E] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} [IsManifold I n M] [IsManifold J n N] {f : M โ†’ N} {s : Set M} {x : M} (hf : ContMDiffOn I J n f s) (hs : IsOpen s) (hx : x โˆˆ s) (hIx : I.IsInteriorPoint x) (hn : 1 โ‰ค n) {e : TangentSpace I x โ‰ƒL[๐•‚] TangentSpace J (f x)} (he : โ†‘e = mfderiv% f x) :

        The inverse function theorem for manifolds. If f is C^n on an open set s with 1 โ‰ค n, x belongs to s and is an interior point, and the differential at x is a continuous linear equivalence, then f is a C^n local diffeomorphism at x.

        Mathlib's Mathlib/Geometry/Manifold/LocalDiffeomorph.lean lists this implication as a TODO.

        theorem TauCeti.isLocalDiffeomorphAt_iff_exists_mfderiv_eq {๐•‚ : Type u_1} [RCLike ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] [CompleteSpace E] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} [IsManifold I n M] [IsManifold J n N] {f : M โ†’ N} {s : Set M} {x : M} (hf : ContMDiffOn I J n f s) (hs : IsOpen s) (hx : x โˆˆ s) (hIx : I.IsInteriorPoint x) (hn : 1 โ‰ค n) :
        IsLocalDiffeomorphAt I J n f x โ†” โˆƒ (e : TangentSpace I x โ‰ƒL[๐•‚] TangentSpace J (f x)), โ†‘e = mfderiv% f x

        For a map which is C^n on an open set, with 1 โ‰ค n, being a C^n local diffeomorphism at an interior point is exactly invertibility of the differential there.

        theorem TauCeti.isLocalDiffeomorphAt_of_injective_mfderiv {๐•‚ : Type u_1} [RCLike ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] [CompleteSpace E] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} [IsManifold I n M] [IsManifold J n N] {f : M โ†’ N} {s : Set M} {x : M} [FiniteDimensional ๐•‚ E] [FiniteDimensional ๐•‚ F] (hf : ContMDiffOn I J n f s) (hs : IsOpen s) (hx : x โˆˆ s) (hIx : I.IsInteriorPoint x) (hn : 1 โ‰ค n) (hinj : Function.Injective โ‡‘(mfderiv% f x)) (hdim : Module.finrank ๐•‚ E = Module.finrank ๐•‚ F) :

        The inverse function theorem for manifolds, injective form: between manifolds of the same finite dimension, a map which is C^n on an open set, with 1 โ‰ค n, and has injective differential at an interior point x of that set is a C^n local diffeomorphism at x.

        theorem TauCeti.isLocalDiffeomorph_of_mfderiv_eq {๐•‚ : Type u_1} [RCLike ๐•‚] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace ๐•‚ E] {F : Type u_3} [NormedAddCommGroup F] [NormedSpace ๐•‚ F] {H : Type u_4} [TopologicalSpace H] {G : Type u_5} [TopologicalSpace G] {M : Type u_6} [TopologicalSpace M] [ChartedSpace H M] {N : Type u_7} [TopologicalSpace N] [ChartedSpace G N] [CompleteSpace E] {I : ModelWithCorners ๐•‚ E H} {J : ModelWithCorners ๐•‚ F G} {n : WithTop โ„•โˆž} [IsManifold I n M] [IsManifold J n N] {f : M โ†’ N} [BoundarylessManifold I M] (hf : ContMDiff I J n f) (hn : 1 โ‰ค n) (he : โˆ€ (y : M), โˆƒ (e : TangentSpace I y โ‰ƒL[๐•‚] TangentSpace J (f y)), โ†‘e = mfderiv% f y) :

        The inverse function theorem for manifolds, global form: a C^n map (1 โ‰ค n) from a boundaryless source manifold, all of whose differentials are continuous linear equivalences, is a C^n local diffeomorphism.