@@ -5,8 +5,7 @@ Authors: Sébastien Gouëzel
55-/
66module
77
8- public import Mathlib.Logic.Equiv.PartialEquiv
9- public import Mathlib.Topology.ContinuousOn
8+ public import Mathlib.Topology.PartialHomeomorph.Defs
109
1110/-!
1211# Partial homeomorphisms: definitions
@@ -52,11 +51,9 @@ variable {X X' : Type*} {Y Y' : Type*} {Z Z' : Type*}
5251
5352/-- Partial homeomorphisms, defined on open subsets of the space -/
5453structure OpenPartialHomeomorph (X : Type *) (Y : Type *) [TopologicalSpace X]
55- [TopologicalSpace Y] extends PartialEquiv X Y where
54+ [TopologicalSpace Y] extends PartialHomeomorph X Y where
5655 open_source : IsOpen source
5756 open_target : IsOpen target
58- continuousOn_toFun : ContinuousOn toFun source
59- continuousOn_invFun : ContinuousOn invFun target
6057
6158namespace OpenPartialHomeomorph
6259
@@ -77,11 +74,9 @@ instance : CoeFun (OpenPartialHomeomorph X Y) fun _ => X → Y :=
7774/-- The inverse of an open partial homeomorphism -/
7875@[symm]
7976protected def symm : OpenPartialHomeomorph Y X where
80- toPartialEquiv := e.toPartialEquiv .symm
77+ toPartialHomeomorph := e.toPartialHomeomorph .symm
8178 open_source := e.open_target
8279 open_target := e.open_source
83- continuousOn_toFun := e.continuousOn_invFun
84- continuousOn_invFun := e.continuousOn_toFun
8580
8681/-- See Note [custom simps projection]. We need to specify this projection explicitly in this case,
8782 because it is a composition of multiple projections. -/
@@ -99,18 +94,18 @@ theorem continuousOn_symm : ContinuousOn e.symm e.target :=
9994 e.continuousOn_invFun
10095
10196@ [simp, mfld_simps]
102- theorem mk_coe (e : PartialEquiv X Y) (h1 h2 h3 h4 ) :
103- (OpenPartialHomeomorph.mk e h1 h2 h3 h4 : X → Y) = e :=
97+ theorem mk_coe (e : PartialEquiv X Y) (a b c d ) :
98+ (OpenPartialHomeomorph.mk (.mk e a b) c d : X → Y) = e :=
10499 rfl
105100
106101@ [simp, mfld_simps]
107102theorem mk_coe_symm (e : PartialEquiv X Y) (a b c d) :
108- ((OpenPartialHomeomorph.mk e a b c d).symm : Y → X) = e.symm :=
103+ ((OpenPartialHomeomorph.mk (.mk e a b) c d).symm : Y → X) = e.symm :=
109104 rfl
110105
111- theorem toPartialEquiv_injective :
112- Injective (toPartialEquiv : OpenPartialHomeomorph X Y → PartialEquiv X Y)
113- | ⟨_, _, _, _, _ ⟩, ⟨_, _, _, _, _⟩, rfl => rfl
106+ theorem toPartialHomeomorph_injective :
107+ Injective (toPartialHomeomorph : OpenPartialHomeomorph X Y → PartialHomeomorph X Y)
108+ | ⟨_, _, _⟩, ⟨_, _, _⟩, rfl => rfl
114109
115110/- Register a few simp lemmas to make sure that `simp` puts the application of a local
116111homeomorphism in its normal form, i.e., in terms of its coercion to a function. -/
@@ -138,6 +133,14 @@ theorem coe_toPartialEquiv_symm : (e.toPartialEquiv.symm : Y → X) = e.symm :=
138133theorem map_source {x : X} (h : x ∈ e.source) : e x ∈ e.target :=
139134 e.map_source' h
140135
136+ @ [simp, mfld_simps]
137+ theorem coe_toPartialHomeomorph : (e.toPartialHomeomorph : X → Y) = e :=
138+ rfl
139+
140+ @ [simp, mfld_simps]
141+ theorem coe_toPartialHomeomorph_symm : (e.toPartialHomeomorph.symm : Y → X) = e.symm :=
142+ rfl
143+
141144/-- Variant of `map_source`, stated for images of subsets of `source`. -/
142145lemma map_source'' : e '' e.source ⊆ e.target :=
143146 fun _ ⟨_, hx, hex⟩ ↦ mem_of_eq_of_mem (id hex.symm) (e.map_source' hx)
@@ -183,15 +186,13 @@ end Basic
183186
184187/-- Interpret a `Homeomorph` as an `OpenPartialHomeomorph` by restricting it
185188to an open set `s` in the domain and to `t` in the codomain. -/
186- @ [simps! -fullyApplied apply symm_apply toPartialEquiv ,
189+ @ [simps! -fullyApplied apply symm_apply toPartialHomeomorph ,
187190 simps! -isSimp source target]
188191def _root_.Homeomorph.toOpenPartialHomeomorphOfImageEq (e : X ≃ₜ Y) (s : Set X) (hs : IsOpen s)
189192 (t : Set Y) (h : e '' s = t) : OpenPartialHomeomorph X Y where
190- toPartialEquiv := e.toPartialEquivOfImageEq s t h
193+ toPartialHomeomorph := e.toPartialHomeomorphOfImageEq s t h
191194 open_source := hs
192195 open_target := by simpa [← h]
193- continuousOn_toFun := e.continuous.continuousOn
194- continuousOn_invFun := e.symm.continuous.continuousOn
195196
196197/-- A homeomorphism induces an open partial homeomorphism on the whole space -/
197198@ [simps! (attr := mfld_simps) -fullyApplied]
@@ -223,7 +224,8 @@ called `EqOnSource`. -/
223224@[ext]
224225protected theorem ext (e' : OpenPartialHomeomorph X Y) (h : ∀ x, e x = e' x)
225226 (hinv : ∀ x, e.symm x = e'.symm x) (hs : e.source = e'.source) : e = e' :=
226- toPartialEquiv_injective (PartialEquiv.ext h hinv hs)
227+ toPartialHomeomorph_injective
228+ (PartialHomeomorph.ext e.toPartialHomeomorph e'.toPartialHomeomorph h hinv hs)
227229
228230@ [simp, mfld_simps]
229231theorem symm_toPartialEquiv : e.symm.toPartialEquiv = e.toPartialEquiv.symm :=
0 commit comments