Skip to content

Commit d1931fc

Browse files
committed
feat(ContDiff): define LocalHomeomorph.restrContDiff (#8605)
Restrict the source and the target of a local homeomorphism to the sets where both `f` and `f.symm` are `C^n`.
1 parent db61ac2 commit d1931fc

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

β€ŽMathlib/Analysis/Calculus/ContDiff/Basic.leanβ€Ž

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1895,6 +1895,33 @@ theorem Homeomorph.contDiff_symm_deriv [CompleteSpace π•œ] (f : π•œ β‰ƒβ‚œ
18951895
f.toLocalHomeomorph.contDiffAt_symm_deriv (hβ‚€ _) (mem_univ x) (hf' _) hf.contDiffAt
18961896
#align homeomorph.cont_diff_symm_deriv Homeomorph.contDiff_symm_deriv
18971897

1898+
namespace LocalHomeomorph
1899+
1900+
variable (π•œ)
1901+
1902+
/-- Restrict a local homeomorphism to the subsets of the source and target
1903+
that consist of points `x ∈ f.source`, `y = f x ∈ f.target`
1904+
such that `f` is `C^n` at `x` and `f.symm` is `C^n` at `y`.
1905+
1906+
Note that `n` is a natural number, not `∞`,
1907+
because the set of points of `C^∞`-smoothness of `f` is not guaranteed to be open. -/
1908+
@[simps! apply symm_apply source target]
1909+
def restrContDiff (f : LocalHomeomorph E F) (n : β„•) : LocalHomeomorph E F :=
1910+
haveI H : f.IsImage {x | ContDiffAt π•œ n f x ∧ ContDiffAt π•œ n f.symm (f x)}
1911+
{y | ContDiffAt π•œ n f.symm y ∧ ContDiffAt π•œ n f (f.symm y)} := fun x hx ↦ by
1912+
simp [hx, and_comm]
1913+
H.restr <| isOpen_iff_mem_nhds.2 <| fun x ⟨hxs, hxf, hxf'⟩ ↦
1914+
inter_mem (f.open_source.mem_nhds hxs) <| hxf.eventually.and <|
1915+
f.continuousAt hxs hxf'.eventually
1916+
1917+
lemma contDiffOn_restrContDiff_source (f : LocalHomeomorph E F) (n : β„•) :
1918+
ContDiffOn π•œ n f (f.restrContDiff π•œ n).source := fun _x hx ↦ hx.2.1.contDiffWithinAt
1919+
1920+
lemma contDiffOn_restrContDiff_target (f : LocalHomeomorph E F) (n : β„•) :
1921+
ContDiffOn π•œ n f.symm (f.restrContDiff π•œ n).target := fun _x hx ↦ hx.2.1.contDiffWithinAt
1922+
1923+
end LocalHomeomorph
1924+
18981925
end FunctionInverse
18991926

19001927
section deriv

0 commit comments

Comments
Β (0)