@@ -158,9 +158,6 @@ predicates `p : X → Prop` and `q : Y → Prop` so long as `p = q ∘ h`. -/
158158@[simps!]
159159def subtype {p : X → Prop } {q : Y → Prop } (h : X ≃ₜ Y) (h_iff : ∀ x, p x ↔ q (h x)) :
160160 {x // p x} ≃ₜ {y // q y} where
161- continuous_toFun := by simpa [Equiv.coe_subtypeEquiv_eq_map] using h.continuous.subtype_map _
162- continuous_invFun := by simpa [Equiv.coe_subtypeEquiv_eq_map] using
163- h.symm.continuous.subtype_map _
164161 __ := h.subtypeEquiv h_iff
165162
166163@[simp]
@@ -175,8 +172,6 @@ abbrev sets {s : Set X} {t : Set Y} (h : X ≃ₜ Y) (h_eq : s = h ⁻¹' t) : s
175172
176173/-- If two sets are equal, then they are homeomorphic. -/
177174def setCongr {s t : Set X} (h : s = t) : s ≃ₜ t where
178- continuous_toFun := continuous_inclusion h.subset
179- continuous_invFun := continuous_inclusion h.symm.subset
180175 toEquiv := Equiv.setCongr h
181176
182177section prod
@@ -188,8 +183,6 @@ variable (X Y W Z)
188183def prodUnique [Unique Y] :
189184 X × Y ≃ₜ X where
190185 toEquiv := Equiv.prodUnique X Y
191- continuous_toFun := continuous_fst
192- continuous_invFun := continuous_id.prodMk continuous_const
193186
194187@[simp] theorem coe_prodUnique [Unique Y] : ⇑(prodUnique X Y) = Prod.fst := rfl
195188
@@ -210,7 +203,6 @@ def sumPiEquivProdPi (S T : Type*) (A : S ⊕ T → Type*)
210203 [∀ st, TopologicalSpace (A st)] :
211204 (Π (st : S ⊕ T), A st) ≃ₜ (Π (s : S), A (.inl s)) × (Π (t : T), A (.inr t)) where
212205 __ := Equiv.sumPiEquivProdPi _
213- continuous_toFun := .prodMk (by fun_prop) (by fun_prop)
214206 continuous_invFun := continuous_pi <| by rintro (s | t) <;> dsimp <;> fun_prop
215207
216208/-- The product `Π t : α, f t` of a family of topological spaces is homeomorphic to the
@@ -255,8 +247,6 @@ lemma piCongrLeft_apply_apply {ι ι' : Type*} {Y : ι' → Type*} [∀ j, Topol
255247@ [simps! apply toEquiv]
256248def piCongrRight {ι : Type *} {Y₁ Y₂ : ι → Type *} [∀ i, TopologicalSpace (Y₁ i)]
257249 [∀ i, TopologicalSpace (Y₂ i)] (F : ∀ i, Y₁ i ≃ₜ Y₂ i) : (∀ i, Y₁ i) ≃ₜ ∀ i, Y₂ i where
258- continuous_toFun := Pi.continuous_postcomp' fun i ↦ (F i).continuous
259- continuous_invFun := Pi.continuous_postcomp' fun i ↦ (F i).symm.continuous
260250 toEquiv := Equiv.piCongrRight fun i => (F i).toEquiv
261251
262252@[simp]
@@ -276,8 +266,6 @@ def piCongr {ι₁ ι₂ : Type*} {Y₁ : ι₁ → Type*} {Y₂ : ι₂ → Typ
276266
277267/-- `ULift X` is homeomorphic to `X`. -/
278268def ulift. {u, v} {X : Type v} [TopologicalSpace X] : ULift.{u, v} X ≃ₜ X where
279- continuous_toFun := continuous_uliftDown
280- continuous_invFun := continuous_uliftUp
281269 toEquiv := Equiv.ulift
282270
283271/-- The natural homeomorphism `(ι ⊕ ι' → X) ≃ₜ (ι → X) × (ι' → X)`.
@@ -298,6 +286,7 @@ private theorem _root_.Fin.appendEquiv_eq_homeomorph (m n : ℕ) : Fin.appendEqu
298286 apply Equiv.symm_bijective.injective
299287 ext x i <;> simp
300288
289+ @[fun_prop]
301290theorem _root_.Fin.continuous_append (m n : ℕ) :
302291 Continuous fun (p : (Fin m → X) × (Fin n → X)) ↦ Fin.append p.1 p.2 := by
303292 suffices Continuous (Fin.appendEquiv m n) by exact this
@@ -309,10 +298,6 @@ theorem _root_.Fin.continuous_append (m n : ℕ) :
309298@[simps!]
310299def _root_.Fin.appendHomeomorph (m n : ℕ) : (Fin m → X) × (Fin n → X) ≃ₜ (Fin (m + n) → X) where
311300 toEquiv := Fin.appendEquiv m n
312- continuous_toFun := Fin.continuous_append m n
313- continuous_invFun := by
314- rw [Fin.appendEquiv_eq_homeomorph]
315- exact Homeomorph.continuous_invFun _
316301
317302@[simp]
318303theorem _root_.Fin.appendHomeomorph_toEquiv (m n : ℕ) :
@@ -337,15 +322,11 @@ end Distrib
337322@ [simps! -fullyApplied]
338323def funUnique (ι X : Type *) [Unique ι] [TopologicalSpace X] : (ι → X) ≃ₜ X where
339324 toEquiv := Equiv.funUnique ι X
340- continuous_toFun := continuous_apply _
341- continuous_invFun := continuous_pi fun _ => continuous_id
342325
343326/-- Homeomorphism between dependent functions `Π i : Fin 2, X i` and `X 0 × X 1`. -/
344327@ [simps! -fullyApplied]
345328def piFinTwo. {u} (X : Fin 2 → Type u) [∀ i, TopologicalSpace (X i)] : (∀ i, X i) ≃ₜ X 0 × X 1 where
346329 toEquiv := piFinTwoEquiv X
347- continuous_toFun := (continuous_apply 0 ).prodMk (continuous_apply 1 )
348- continuous_invFun := continuous_pi <| Fin.forall_fin_two.2 ⟨continuous_fst, continuous_snd⟩
349330
350331/-- Homeomorphism between `X² = Fin 2 → X` and `X × X`. -/
351332@ [simps! -fullyApplied]
@@ -365,7 +346,7 @@ def image (e : X ≃ₜ Y) (s : Set X) : s ≃ₜ e '' s where
365346@ [simps! -fullyApplied]
366347def Set.univ (X : Type *) [TopologicalSpace X] : (univ : Set X) ≃ₜ X where
367348 toEquiv := Equiv.Set.univ X
368- continuous_toFun := continuous_subtype_val
349+ -- TODO: `fun_prop` cannot apply `Continuous.subtype_mk`
369350 continuous_invFun := continuous_id.subtype_mk _
370351
371352/-- `s ×ˢ t` is homeomorphic to `s × t`. -/
@@ -387,8 +368,6 @@ variable {ι : Type*}
387368def piEquivPiSubtypeProd (p : ι → Prop ) (Y : ι → Type *) [∀ i, TopologicalSpace (Y i)]
388369 [DecidablePred p] : (∀ i, Y i) ≃ₜ (∀ i : { x // p x }, Y i) × ∀ i : { x // ¬p x }, Y i where
389370 toEquiv := Equiv.piEquivPiSubtypeProd p Y
390- continuous_toFun := by
391- apply Continuous.prodMk <;> exact continuous_pi fun j => continuous_apply j.1
392371 continuous_invFun :=
393372 continuous_pi fun j => by
394373 dsimp only [Equiv.piEquivPiSubtypeProd]; split_ifs
@@ -402,7 +381,6 @@ variable [DecidableEq ι] (i : ι)
402381def piSplitAt (Y : ι → Type *) [∀ j, TopologicalSpace (Y j)] :
403382 (∀ j, Y j) ≃ₜ Y i × ∀ j : { j // j ≠ i }, Y j where
404383 toEquiv := Equiv.piSplitAt i Y
405- continuous_toFun := (continuous_apply i).prodMk (continuous_pi fun j => continuous_apply j.1 )
406384 continuous_invFun :=
407385 continuous_pi fun j => by
408386 dsimp only [Equiv.piSplitAt]
0 commit comments