topology.local_at_target
⟷
Mathlib.Topology.LocalAtTarget
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2022 Andrew Yang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
-/
-import Mathbin.Topology.Sets.Opens
+import Topology.Sets.Opens
#align_import topology.local_at_target from "leanprover-community/mathlib"@"25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -41,7 +41,7 @@ theorem Set.restrictPreimage_inducing (s : Set β) (h : Inducing f) :
#align set.restrict_preimage_inducing Set.restrictPreimage_inducing
-/
-alias Set.restrictPreimage_inducing ← Inducing.restrictPreimage
+alias Inducing.restrictPreimage := Set.restrictPreimage_inducing
#align inducing.restrict_preimage Inducing.restrictPreimage
#print Set.restrictPreimage_embedding /-
@@ -51,7 +51,7 @@ theorem Set.restrictPreimage_embedding (s : Set β) (h : Embedding f) :
#align set.restrict_preimage_embedding Set.restrictPreimage_embedding
-/
-alias Set.restrictPreimage_embedding ← Embedding.restrictPreimage
+alias Embedding.restrictPreimage := Set.restrictPreimage_embedding
#align embedding.restrict_preimage Embedding.restrictPreimage
#print Set.restrictPreimage_openEmbedding /-
@@ -62,7 +62,7 @@ theorem Set.restrictPreimage_openEmbedding (s : Set β) (h : OpenEmbedding f) :
#align set.restrict_preimage_open_embedding Set.restrictPreimage_openEmbedding
-/
-alias Set.restrictPreimage_openEmbedding ← OpenEmbedding.restrictPreimage
+alias OpenEmbedding.restrictPreimage := Set.restrictPreimage_openEmbedding
#align open_embedding.restrict_preimage OpenEmbedding.restrictPreimage
#print Set.restrictPreimage_closedEmbedding /-
@@ -73,7 +73,7 @@ theorem Set.restrictPreimage_closedEmbedding (s : Set β) (h : ClosedEmbedding f
#align set.restrict_preimage_closed_embedding Set.restrictPreimage_closedEmbedding
-/
-alias Set.restrictPreimage_closedEmbedding ← ClosedEmbedding.restrictPreimage
+alias ClosedEmbedding.restrictPreimage := Set.restrictPreimage_closedEmbedding
#align closed_embedding.restrict_preimage ClosedEmbedding.restrictPreimage
#print Set.restrictPreimage_isClosedMap /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2022 Andrew Yang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
-
-! This file was ported from Lean 3 source module topology.local_at_target
-! leanprover-community/mathlib commit 25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Topology.Sets.Opens
+#align_import topology.local_at_target from "leanprover-community/mathlib"@"25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e"
+
/-!
# Properties of maps that are local at the target.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -94,8 +94,7 @@ theorem Set.restrictPreimage_isClosedMap (s : Set β) (H : IsClosedMap f) :
#align set.restrict_preimage_is_closed_map Set.restrictPreimage_isClosedMap
-/
-include hU
-
+#print isOpen_iff_inter_of_iSup_eq_top /-
theorem isOpen_iff_inter_of_iSup_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsOpen (s ∩ U i) :=
by
constructor
@@ -105,7 +104,9 @@ theorem isOpen_iff_inter_of_iSup_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsOpe
rw [← s.inter_univ, ← this, Set.inter_iUnion]
exact isOpen_iUnion H
#align is_open_iff_inter_of_supr_eq_top isOpen_iff_inter_of_iSup_eq_top
+-/
+#print isOpen_iff_coe_preimage_of_iSup_eq_top /-
theorem isOpen_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
IsOpen s ↔ ∀ i, IsOpen (coe ⁻¹' s : Set (U i)) :=
by
@@ -114,12 +115,16 @@ theorem isOpen_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
apply isOpen_iff_inter_of_iSup_eq_top
assumption
#align is_open_iff_coe_preimage_of_supr_eq_top isOpen_iff_coe_preimage_of_iSup_eq_top
+-/
+#print isClosed_iff_coe_preimage_of_iSup_eq_top /-
theorem isClosed_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
IsClosed s ↔ ∀ i, IsClosed (coe ⁻¹' s : Set (U i)) := by
simpa using isOpen_iff_coe_preimage_of_iSup_eq_top hU (sᶜ)
#align is_closed_iff_coe_preimage_of_supr_eq_top isClosed_iff_coe_preimage_of_iSup_eq_top
+-/
+#print isClosedMap_iff_isClosedMap_of_iSup_eq_top /-
theorem isClosedMap_iff_isClosedMap_of_iSup_eq_top :
IsClosedMap f ↔ ∀ i, IsClosedMap ((U i).1.restrictPreimage f) :=
by
@@ -133,7 +138,9 @@ theorem isClosedMap_iff_isClosedMap_of_iSup_eq_top :
simpa [Set.restrictPreimage, ← Subtype.coe_inj]
exact ⟨fun ⟨a, b, c⟩ => ⟨a, c.symm ▸ hx, b, c⟩, fun ⟨a, _, b, c⟩ => ⟨a, b, c⟩⟩
#align is_closed_map_iff_is_closed_map_of_supr_eq_top isClosedMap_iff_isClosedMap_of_iSup_eq_top
+-/
+#print inducing_iff_inducing_of_iSup_eq_top /-
theorem inducing_iff_inducing_of_iSup_eq_top (h : Continuous f) :
Inducing f ↔ ∀ i, Inducing ((U i).1.restrictPreimage f) :=
by
@@ -148,7 +155,9 @@ theorem inducing_iff_inducing_of_iSup_eq_top (h : Continuous f) :
inf_eq_left, Filter.le_principal_iff]
exact Filter.preimage_mem_comap ((U i).2.mem_nhds hi)
#align inducing_iff_inducing_of_supr_eq_top inducing_iff_inducing_of_iSup_eq_top
+-/
+#print embedding_iff_embedding_of_iSup_eq_top /-
theorem embedding_iff_embedding_of_iSup_eq_top (h : Continuous f) :
Embedding f ↔ ∀ i, Embedding ((U i).1.restrictPreimage f) :=
by
@@ -158,7 +167,9 @@ theorem embedding_iff_embedding_of_iSup_eq_top (h : Continuous f) :
· apply inducing_iff_inducing_of_iSup_eq_top <;> assumption
· apply Set.injective_iff_injective_of_iUnion_eq_univ; convert congr_arg coe hU; simp
#align embedding_iff_embedding_of_supr_eq_top embedding_iff_embedding_of_iSup_eq_top
+-/
+#print openEmbedding_iff_openEmbedding_of_iSup_eq_top /-
theorem openEmbedding_iff_openEmbedding_of_iSup_eq_top (h : Continuous f) :
OpenEmbedding f ↔ ∀ i, OpenEmbedding ((U i).1.restrictPreimage f) :=
by
@@ -168,7 +179,9 @@ theorem openEmbedding_iff_openEmbedding_of_iSup_eq_top (h : Continuous f) :
· apply embedding_iff_embedding_of_iSup_eq_top <;> assumption
· simp_rw [Set.range_restrictPreimage]; apply isOpen_iff_coe_preimage_of_iSup_eq_top hU
#align open_embedding_iff_open_embedding_of_supr_eq_top openEmbedding_iff_openEmbedding_of_iSup_eq_top
+-/
+#print closedEmbedding_iff_closedEmbedding_of_iSup_eq_top /-
theorem closedEmbedding_iff_closedEmbedding_of_iSup_eq_top (h : Continuous f) :
ClosedEmbedding f ↔ ∀ i, ClosedEmbedding ((U i).1.restrictPreimage f) :=
by
@@ -178,4 +191,5 @@ theorem closedEmbedding_iff_closedEmbedding_of_iSup_eq_top (h : Continuous f) :
· apply embedding_iff_embedding_of_iSup_eq_top <;> assumption
· simp_rw [Set.range_restrictPreimage]; apply isClosed_iff_coe_preimage_of_iSup_eq_top hU
#align closed_embedding_iff_closed_embedding_of_supr_eq_top closedEmbedding_iff_closedEmbedding_of_iSup_eq_top
+-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -38,7 +38,7 @@ theorem Set.restrictPreimage_inducing (s : Set β) (h : Inducing f) :
Inducing (s.restrictPreimage f) :=
by
simp_rw [inducing_coe.inducing_iff, inducing_iff_nhds, restrict_preimage, maps_to.coe_restrict,
- restrict_eq, ← @Filter.comap_comap _ _ _ _ coe f] at h⊢
+ restrict_eq, ← @Filter.comap_comap _ _ _ _ coe f] at h ⊢
intro a
rw [← h, ← inducing_coe.nhds_eq_comap]
#align set.restrict_preimage_inducing Set.restrictPreimage_inducing
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -27,7 +27,7 @@ We show that the following properties of continuous maps are local at the target
open TopologicalSpace Set Filter
-open Topology Filter
+open scoped Topology Filter
variable {α β : Type _} [TopologicalSpace α] [TopologicalSpace β] {f : α → β}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -96,12 +96,6 @@ theorem Set.restrictPreimage_isClosedMap (s : Set β) (H : IsClosedMap f) :
include hU
-/- warning: is_open_iff_inter_of_supr_eq_top -> isOpen_iff_inter_of_iSup_eq_top is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} β _inst_2 (Inter.inter.{u1} (Set.{u1} β) (Set.hasInter.{u1} β) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (TopologicalSpace.Opens.{u1} β _inst_2) (Set.{u1} β) (HasLiftT.mk.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (Set.{u1} β) (CoeTCₓ.coe.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (Set.{u1} β) (SetLike.Set.hasCoeT.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)))) (U i)))))
-but is expected to have type
- forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} β _inst_2 (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) s (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2) (U i)))))
-Case conversion may be inaccurate. Consider using '#align is_open_iff_inter_of_supr_eq_top isOpen_iff_inter_of_iSup_eq_topₓ'. -/
theorem isOpen_iff_inter_of_iSup_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsOpen (s ∩ U i) :=
by
constructor
@@ -112,12 +106,6 @@ theorem isOpen_iff_inter_of_iSup_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsOpe
exact isOpen_iUnion H
#align is_open_iff_inter_of_supr_eq_top isOpen_iff_inter_of_iSup_eq_top
-/- warning: is_open_iff_coe_preimage_of_supr_eq_top -> isOpen_iff_coe_preimage_of_iSup_eq_top is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) (Subtype.topologicalSpace.{u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeSubtype.{succ u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i))))))) s)))
-but is expected to have type
- forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) β (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2) (U i)))) s)))
-Case conversion may be inaccurate. Consider using '#align is_open_iff_coe_preimage_of_supr_eq_top isOpen_iff_coe_preimage_of_iSup_eq_topₓ'. -/
theorem isOpen_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
IsOpen s ↔ ∀ i, IsOpen (coe ⁻¹' s : Set (U i)) :=
by
@@ -127,23 +115,11 @@ theorem isOpen_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
assumption
#align is_open_iff_coe_preimage_of_supr_eq_top isOpen_iff_coe_preimage_of_iSup_eq_top
-/- warning: is_closed_iff_coe_preimage_of_supr_eq_top -> isClosed_iff_coe_preimage_of_iSup_eq_top is a dubious translation:
-lean 3 declaration is
- forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsClosed.{u1} β _inst_2 s) (forall (i : ι), IsClosed.{u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) (Subtype.topologicalSpace.{u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeSubtype.{succ u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i))))))) s)))
-but is expected to have type
- forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsClosed.{u1} β _inst_2 s) (forall (i : ι), IsClosed.{u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) β (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2) (U i)))) s)))
-Case conversion may be inaccurate. Consider using '#align is_closed_iff_coe_preimage_of_supr_eq_top isClosed_iff_coe_preimage_of_iSup_eq_topₓ'. -/
theorem isClosed_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
IsClosed s ↔ ∀ i, IsClosed (coe ⁻¹' s : Set (U i)) := by
simpa using isOpen_iff_coe_preimage_of_iSup_eq_top hU (sᶜ)
#align is_closed_iff_coe_preimage_of_supr_eq_top isClosed_iff_coe_preimage_of_iSup_eq_top
-/- warning: is_closed_map_iff_is_closed_map_of_supr_eq_top -> isClosedMap_iff_isClosedMap_of_iSup_eq_top is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (iSup.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Iff (IsClosedMap.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), IsClosedMap.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Iff (IsClosedMap.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), IsClosedMap.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
-Case conversion may be inaccurate. Consider using '#align is_closed_map_iff_is_closed_map_of_supr_eq_top isClosedMap_iff_isClosedMap_of_iSup_eq_topₓ'. -/
theorem isClosedMap_iff_isClosedMap_of_iSup_eq_top :
IsClosedMap f ↔ ∀ i, IsClosedMap ((U i).1.restrictPreimage f) :=
by
@@ -158,12 +134,6 @@ theorem isClosedMap_iff_isClosedMap_of_iSup_eq_top :
exact ⟨fun ⟨a, b, c⟩ => ⟨a, c.symm ▸ hx, b, c⟩, fun ⟨a, _, b, c⟩ => ⟨a, b, c⟩⟩
#align is_closed_map_iff_is_closed_map_of_supr_eq_top isClosedMap_iff_isClosedMap_of_iSup_eq_top
-/- warning: inducing_iff_inducing_of_supr_eq_top -> inducing_iff_inducing_of_iSup_eq_top is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (iSup.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (Inducing.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), Inducing.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (Inducing.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), Inducing.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
-Case conversion may be inaccurate. Consider using '#align inducing_iff_inducing_of_supr_eq_top inducing_iff_inducing_of_iSup_eq_topₓ'. -/
theorem inducing_iff_inducing_of_iSup_eq_top (h : Continuous f) :
Inducing f ↔ ∀ i, Inducing ((U i).1.restrictPreimage f) :=
by
@@ -179,12 +149,6 @@ theorem inducing_iff_inducing_of_iSup_eq_top (h : Continuous f) :
exact Filter.preimage_mem_comap ((U i).2.mem_nhds hi)
#align inducing_iff_inducing_of_supr_eq_top inducing_iff_inducing_of_iSup_eq_top
-/- warning: embedding_iff_embedding_of_supr_eq_top -> embedding_iff_embedding_of_iSup_eq_top is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (iSup.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (Embedding.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), Embedding.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (Embedding.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), Embedding.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
-Case conversion may be inaccurate. Consider using '#align embedding_iff_embedding_of_supr_eq_top embedding_iff_embedding_of_iSup_eq_topₓ'. -/
theorem embedding_iff_embedding_of_iSup_eq_top (h : Continuous f) :
Embedding f ↔ ∀ i, Embedding ((U i).1.restrictPreimage f) :=
by
@@ -195,12 +159,6 @@ theorem embedding_iff_embedding_of_iSup_eq_top (h : Continuous f) :
· apply Set.injective_iff_injective_of_iUnion_eq_univ; convert congr_arg coe hU; simp
#align embedding_iff_embedding_of_supr_eq_top embedding_iff_embedding_of_iSup_eq_top
-/- warning: open_embedding_iff_open_embedding_of_supr_eq_top -> openEmbedding_iff_openEmbedding_of_iSup_eq_top is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (iSup.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (OpenEmbedding.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), OpenEmbedding.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (OpenEmbedding.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), OpenEmbedding.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
-Case conversion may be inaccurate. Consider using '#align open_embedding_iff_open_embedding_of_supr_eq_top openEmbedding_iff_openEmbedding_of_iSup_eq_topₓ'. -/
theorem openEmbedding_iff_openEmbedding_of_iSup_eq_top (h : Continuous f) :
OpenEmbedding f ↔ ∀ i, OpenEmbedding ((U i).1.restrictPreimage f) :=
by
@@ -211,12 +169,6 @@ theorem openEmbedding_iff_openEmbedding_of_iSup_eq_top (h : Continuous f) :
· simp_rw [Set.range_restrictPreimage]; apply isOpen_iff_coe_preimage_of_iSup_eq_top hU
#align open_embedding_iff_open_embedding_of_supr_eq_top openEmbedding_iff_openEmbedding_of_iSup_eq_top
-/- warning: closed_embedding_iff_closed_embedding_of_supr_eq_top -> closedEmbedding_iff_closedEmbedding_of_iSup_eq_top is a dubious translation:
-lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (iSup.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (ClosedEmbedding.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), ClosedEmbedding.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
-but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (ClosedEmbedding.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), ClosedEmbedding.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
-Case conversion may be inaccurate. Consider using '#align closed_embedding_iff_closed_embedding_of_supr_eq_top closedEmbedding_iff_closedEmbedding_of_iSup_eq_topₓ'. -/
theorem closedEmbedding_iff_closedEmbedding_of_iSup_eq_top (h : Continuous f) :
ClosedEmbedding f ↔ ∀ i, ClosedEmbedding ((U i).1.restrictPreimage f) :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -107,10 +107,7 @@ theorem isOpen_iff_inter_of_iSup_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsOpe
constructor
· exact fun H i => H.inter (U i).2
· intro H
- have : (⋃ i, (U i : Set β)) = Set.univ :=
- by
- convert congr_arg coe hU
- simp
+ have : (⋃ i, (U i : Set β)) = Set.univ := by convert congr_arg coe hU; simp
rw [← s.inter_univ, ← this, Set.inter_iUnion]
exact isOpen_iUnion H
#align is_open_iff_inter_of_supr_eq_top isOpen_iff_inter_of_iSup_eq_top
@@ -173,14 +170,9 @@ theorem inducing_iff_inducing_of_iSup_eq_top (h : Continuous f) :
simp_rw [inducing_coe.inducing_iff, inducing_iff_nhds, restrict_preimage, maps_to.coe_restrict,
restrict_eq, ← @Filter.comap_comap _ _ _ _ coe f]
constructor
- · intro H i x
- rw [← H, ← inducing_coe.nhds_eq_comap]
+ · intro H i x; rw [← H, ← inducing_coe.nhds_eq_comap]
· intro H x
- obtain ⟨i, hi⟩ :=
- opens.mem_supr.mp
- (show f x ∈ iSup U by
- rw [hU]
- triv)
+ obtain ⟨i, hi⟩ := opens.mem_supr.mp (show f x ∈ iSup U by rw [hU]; triv)
erw [← OpenEmbedding.map_nhds_eq (h.1 _ (U i).2).openEmbedding_subtype_val ⟨x, hi⟩]
rw [(H i) ⟨x, hi⟩, Filter.subtype_coe_map_comap, Function.comp_apply, Subtype.coe_mk,
inf_eq_left, Filter.le_principal_iff]
@@ -200,9 +192,7 @@ theorem embedding_iff_embedding_of_iSup_eq_top (h : Continuous f) :
rw [forall_and]
apply and_congr
· apply inducing_iff_inducing_of_iSup_eq_top <;> assumption
- · apply Set.injective_iff_injective_of_iUnion_eq_univ
- convert congr_arg coe hU
- simp
+ · apply Set.injective_iff_injective_of_iUnion_eq_univ; convert congr_arg coe hU; simp
#align embedding_iff_embedding_of_supr_eq_top embedding_iff_embedding_of_iSup_eq_top
/- warning: open_embedding_iff_open_embedding_of_supr_eq_top -> openEmbedding_iff_openEmbedding_of_iSup_eq_top is a dubious translation:
@@ -218,8 +208,7 @@ theorem openEmbedding_iff_openEmbedding_of_iSup_eq_top (h : Continuous f) :
rw [forall_and]
apply and_congr
· apply embedding_iff_embedding_of_iSup_eq_top <;> assumption
- · simp_rw [Set.range_restrictPreimage]
- apply isOpen_iff_coe_preimage_of_iSup_eq_top hU
+ · simp_rw [Set.range_restrictPreimage]; apply isOpen_iff_coe_preimage_of_iSup_eq_top hU
#align open_embedding_iff_open_embedding_of_supr_eq_top openEmbedding_iff_openEmbedding_of_iSup_eq_top
/- warning: closed_embedding_iff_closed_embedding_of_supr_eq_top -> closedEmbedding_iff_closedEmbedding_of_iSup_eq_top is a dubious translation:
@@ -235,7 +224,6 @@ theorem closedEmbedding_iff_closedEmbedding_of_iSup_eq_top (h : Continuous f) :
rw [forall_and]
apply and_congr
· apply embedding_iff_embedding_of_iSup_eq_top <;> assumption
- · simp_rw [Set.range_restrictPreimage]
- apply isClosed_iff_coe_preimage_of_iSup_eq_top hU
+ · simp_rw [Set.range_restrictPreimage]; apply isClosed_iff_coe_preimage_of_iSup_eq_top hU
#align closed_embedding_iff_closed_embedding_of_supr_eq_top closedEmbedding_iff_closedEmbedding_of_iSup_eq_top
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -31,7 +31,7 @@ open Topology Filter
variable {α β : Type _} [TopologicalSpace α] [TopologicalSpace β] {f : α → β}
-variable {s : Set β} {ι : Type _} {U : ι → Opens β} (hU : supᵢ U = ⊤)
+variable {s : Set β} {ι : Type _} {U : ι → Opens β} (hU : iSup U = ⊤)
#print Set.restrictPreimage_inducing /-
theorem Set.restrictPreimage_inducing (s : Set β) (h : Inducing f) :
@@ -96,13 +96,13 @@ theorem Set.restrictPreimage_isClosedMap (s : Set β) (H : IsClosedMap f) :
include hU
-/- warning: is_open_iff_inter_of_supr_eq_top -> isOpen_iff_inter_of_supᵢ_eq_top is a dubious translation:
+/- warning: is_open_iff_inter_of_supr_eq_top -> isOpen_iff_inter_of_iSup_eq_top is a dubious translation:
lean 3 declaration is
- forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} β _inst_2 (Inter.inter.{u1} (Set.{u1} β) (Set.hasInter.{u1} β) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (TopologicalSpace.Opens.{u1} β _inst_2) (Set.{u1} β) (HasLiftT.mk.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (Set.{u1} β) (CoeTCₓ.coe.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (Set.{u1} β) (SetLike.Set.hasCoeT.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)))) (U i)))))
+ forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} β _inst_2 (Inter.inter.{u1} (Set.{u1} β) (Set.hasInter.{u1} β) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (TopologicalSpace.Opens.{u1} β _inst_2) (Set.{u1} β) (HasLiftT.mk.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (Set.{u1} β) (CoeTCₓ.coe.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (Set.{u1} β) (SetLike.Set.hasCoeT.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)))) (U i)))))
but is expected to have type
- forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} β _inst_2 (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) s (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2) (U i)))))
-Case conversion may be inaccurate. Consider using '#align is_open_iff_inter_of_supr_eq_top isOpen_iff_inter_of_supᵢ_eq_topₓ'. -/
-theorem isOpen_iff_inter_of_supᵢ_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsOpen (s ∩ U i) :=
+ forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} β _inst_2 (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) s (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2) (U i)))))
+Case conversion may be inaccurate. Consider using '#align is_open_iff_inter_of_supr_eq_top isOpen_iff_inter_of_iSup_eq_topₓ'. -/
+theorem isOpen_iff_inter_of_iSup_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsOpen (s ∩ U i) :=
by
constructor
· exact fun H i => H.inter (U i).2
@@ -111,63 +111,63 @@ theorem isOpen_iff_inter_of_supᵢ_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsO
by
convert congr_arg coe hU
simp
- rw [← s.inter_univ, ← this, Set.inter_unionᵢ]
- exact isOpen_unionᵢ H
-#align is_open_iff_inter_of_supr_eq_top isOpen_iff_inter_of_supᵢ_eq_top
+ rw [← s.inter_univ, ← this, Set.inter_iUnion]
+ exact isOpen_iUnion H
+#align is_open_iff_inter_of_supr_eq_top isOpen_iff_inter_of_iSup_eq_top
-/- warning: is_open_iff_coe_preimage_of_supr_eq_top -> isOpen_iff_coe_preimage_of_supᵢ_eq_top is a dubious translation:
+/- warning: is_open_iff_coe_preimage_of_supr_eq_top -> isOpen_iff_coe_preimage_of_iSup_eq_top is a dubious translation:
lean 3 declaration is
- forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) (Subtype.topologicalSpace.{u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeSubtype.{succ u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i))))))) s)))
+ forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) (Subtype.topologicalSpace.{u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeSubtype.{succ u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i))))))) s)))
but is expected to have type
- forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) β (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2) (U i)))) s)))
-Case conversion may be inaccurate. Consider using '#align is_open_iff_coe_preimage_of_supr_eq_top isOpen_iff_coe_preimage_of_supᵢ_eq_topₓ'. -/
-theorem isOpen_iff_coe_preimage_of_supᵢ_eq_top (s : Set β) :
+ forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) β (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2) (U i)))) s)))
+Case conversion may be inaccurate. Consider using '#align is_open_iff_coe_preimage_of_supr_eq_top isOpen_iff_coe_preimage_of_iSup_eq_topₓ'. -/
+theorem isOpen_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
IsOpen s ↔ ∀ i, IsOpen (coe ⁻¹' s : Set (U i)) :=
by
simp_rw [(U _).2.openEmbedding_subtype_val.open_iff_image_open, Set.image_preimage_eq_inter_range,
Subtype.range_coe]
- apply isOpen_iff_inter_of_supᵢ_eq_top
+ apply isOpen_iff_inter_of_iSup_eq_top
assumption
-#align is_open_iff_coe_preimage_of_supr_eq_top isOpen_iff_coe_preimage_of_supᵢ_eq_top
+#align is_open_iff_coe_preimage_of_supr_eq_top isOpen_iff_coe_preimage_of_iSup_eq_top
-/- warning: is_closed_iff_coe_preimage_of_supr_eq_top -> isClosed_iff_coe_preimage_of_supᵢ_eq_top is a dubious translation:
+/- warning: is_closed_iff_coe_preimage_of_supr_eq_top -> isClosed_iff_coe_preimage_of_iSup_eq_top is a dubious translation:
lean 3 declaration is
- forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsClosed.{u1} β _inst_2 s) (forall (i : ι), IsClosed.{u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) (Subtype.topologicalSpace.{u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeSubtype.{succ u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i))))))) s)))
+ forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsClosed.{u1} β _inst_2 s) (forall (i : ι), IsClosed.{u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) (Subtype.topologicalSpace.{u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeSubtype.{succ u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i))))))) s)))
but is expected to have type
- forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsClosed.{u1} β _inst_2 s) (forall (i : ι), IsClosed.{u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) β (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2) (U i)))) s)))
-Case conversion may be inaccurate. Consider using '#align is_closed_iff_coe_preimage_of_supr_eq_top isClosed_iff_coe_preimage_of_supᵢ_eq_topₓ'. -/
-theorem isClosed_iff_coe_preimage_of_supᵢ_eq_top (s : Set β) :
+ forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsClosed.{u1} β _inst_2 s) (forall (i : ι), IsClosed.{u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) β (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2) (U i)))) s)))
+Case conversion may be inaccurate. Consider using '#align is_closed_iff_coe_preimage_of_supr_eq_top isClosed_iff_coe_preimage_of_iSup_eq_topₓ'. -/
+theorem isClosed_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
IsClosed s ↔ ∀ i, IsClosed (coe ⁻¹' s : Set (U i)) := by
- simpa using isOpen_iff_coe_preimage_of_supᵢ_eq_top hU (sᶜ)
-#align is_closed_iff_coe_preimage_of_supr_eq_top isClosed_iff_coe_preimage_of_supᵢ_eq_top
+ simpa using isOpen_iff_coe_preimage_of_iSup_eq_top hU (sᶜ)
+#align is_closed_iff_coe_preimage_of_supr_eq_top isClosed_iff_coe_preimage_of_iSup_eq_top
-/- warning: is_closed_map_iff_is_closed_map_of_supr_eq_top -> isClosedMap_iff_isClosedMap_of_supᵢ_eq_top is a dubious translation:
+/- warning: is_closed_map_iff_is_closed_map_of_supr_eq_top -> isClosedMap_iff_isClosedMap_of_iSup_eq_top is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (supᵢ.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Iff (IsClosedMap.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), IsClosedMap.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (iSup.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Iff (IsClosedMap.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), IsClosedMap.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Iff (IsClosedMap.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), IsClosedMap.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
-Case conversion may be inaccurate. Consider using '#align is_closed_map_iff_is_closed_map_of_supr_eq_top isClosedMap_iff_isClosedMap_of_supᵢ_eq_topₓ'. -/
-theorem isClosedMap_iff_isClosedMap_of_supᵢ_eq_top :
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Iff (IsClosedMap.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), IsClosedMap.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
+Case conversion may be inaccurate. Consider using '#align is_closed_map_iff_is_closed_map_of_supr_eq_top isClosedMap_iff_isClosedMap_of_iSup_eq_topₓ'. -/
+theorem isClosedMap_iff_isClosedMap_of_iSup_eq_top :
IsClosedMap f ↔ ∀ i, IsClosedMap ((U i).1.restrictPreimage f) :=
by
refine' ⟨fun h i => Set.restrictPreimage_isClosedMap _ h, _⟩
rintro H s hs
- rw [isClosed_iff_coe_preimage_of_supᵢ_eq_top hU]
+ rw [isClosed_iff_coe_preimage_of_iSup_eq_top hU]
intro i
convert H i _ ⟨⟨_, hs.1, eq_compl_comm.mpr rfl⟩⟩
ext ⟨x, hx⟩
suffices (∃ y, y ∈ s ∧ f y = x) ↔ ∃ y, f y ∈ U i ∧ y ∈ s ∧ f y = x by
simpa [Set.restrictPreimage, ← Subtype.coe_inj]
exact ⟨fun ⟨a, b, c⟩ => ⟨a, c.symm ▸ hx, b, c⟩, fun ⟨a, _, b, c⟩ => ⟨a, b, c⟩⟩
-#align is_closed_map_iff_is_closed_map_of_supr_eq_top isClosedMap_iff_isClosedMap_of_supᵢ_eq_top
+#align is_closed_map_iff_is_closed_map_of_supr_eq_top isClosedMap_iff_isClosedMap_of_iSup_eq_top
-/- warning: inducing_iff_inducing_of_supr_eq_top -> inducing_iff_inducing_of_supᵢ_eq_top is a dubious translation:
+/- warning: inducing_iff_inducing_of_supr_eq_top -> inducing_iff_inducing_of_iSup_eq_top is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (supᵢ.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (Inducing.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), Inducing.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (iSup.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (Inducing.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), Inducing.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (Inducing.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), Inducing.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
-Case conversion may be inaccurate. Consider using '#align inducing_iff_inducing_of_supr_eq_top inducing_iff_inducing_of_supᵢ_eq_topₓ'. -/
-theorem inducing_iff_inducing_of_supᵢ_eq_top (h : Continuous f) :
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (Inducing.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), Inducing.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
+Case conversion may be inaccurate. Consider using '#align inducing_iff_inducing_of_supr_eq_top inducing_iff_inducing_of_iSup_eq_topₓ'. -/
+theorem inducing_iff_inducing_of_iSup_eq_top (h : Continuous f) :
Inducing f ↔ ∀ i, Inducing ((U i).1.restrictPreimage f) :=
by
simp_rw [inducing_coe.inducing_iff, inducing_iff_nhds, restrict_preimage, maps_to.coe_restrict,
@@ -178,64 +178,64 @@ theorem inducing_iff_inducing_of_supᵢ_eq_top (h : Continuous f) :
· intro H x
obtain ⟨i, hi⟩ :=
opens.mem_supr.mp
- (show f x ∈ supᵢ U by
+ (show f x ∈ iSup U by
rw [hU]
triv)
erw [← OpenEmbedding.map_nhds_eq (h.1 _ (U i).2).openEmbedding_subtype_val ⟨x, hi⟩]
rw [(H i) ⟨x, hi⟩, Filter.subtype_coe_map_comap, Function.comp_apply, Subtype.coe_mk,
inf_eq_left, Filter.le_principal_iff]
exact Filter.preimage_mem_comap ((U i).2.mem_nhds hi)
-#align inducing_iff_inducing_of_supr_eq_top inducing_iff_inducing_of_supᵢ_eq_top
+#align inducing_iff_inducing_of_supr_eq_top inducing_iff_inducing_of_iSup_eq_top
-/- warning: embedding_iff_embedding_of_supr_eq_top -> embedding_iff_embedding_of_supᵢ_eq_top is a dubious translation:
+/- warning: embedding_iff_embedding_of_supr_eq_top -> embedding_iff_embedding_of_iSup_eq_top is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (supᵢ.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (Embedding.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), Embedding.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (iSup.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (Embedding.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), Embedding.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (Embedding.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), Embedding.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
-Case conversion may be inaccurate. Consider using '#align embedding_iff_embedding_of_supr_eq_top embedding_iff_embedding_of_supᵢ_eq_topₓ'. -/
-theorem embedding_iff_embedding_of_supᵢ_eq_top (h : Continuous f) :
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (Embedding.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), Embedding.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
+Case conversion may be inaccurate. Consider using '#align embedding_iff_embedding_of_supr_eq_top embedding_iff_embedding_of_iSup_eq_topₓ'. -/
+theorem embedding_iff_embedding_of_iSup_eq_top (h : Continuous f) :
Embedding f ↔ ∀ i, Embedding ((U i).1.restrictPreimage f) :=
by
simp_rw [embedding_iff]
rw [forall_and]
apply and_congr
- · apply inducing_iff_inducing_of_supᵢ_eq_top <;> assumption
- · apply Set.injective_iff_injective_of_unionᵢ_eq_univ
+ · apply inducing_iff_inducing_of_iSup_eq_top <;> assumption
+ · apply Set.injective_iff_injective_of_iUnion_eq_univ
convert congr_arg coe hU
simp
-#align embedding_iff_embedding_of_supr_eq_top embedding_iff_embedding_of_supᵢ_eq_top
+#align embedding_iff_embedding_of_supr_eq_top embedding_iff_embedding_of_iSup_eq_top
-/- warning: open_embedding_iff_open_embedding_of_supr_eq_top -> openEmbedding_iff_openEmbedding_of_supᵢ_eq_top is a dubious translation:
+/- warning: open_embedding_iff_open_embedding_of_supr_eq_top -> openEmbedding_iff_openEmbedding_of_iSup_eq_top is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (supᵢ.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (OpenEmbedding.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), OpenEmbedding.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (iSup.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (OpenEmbedding.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), OpenEmbedding.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (OpenEmbedding.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), OpenEmbedding.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
-Case conversion may be inaccurate. Consider using '#align open_embedding_iff_open_embedding_of_supr_eq_top openEmbedding_iff_openEmbedding_of_supᵢ_eq_topₓ'. -/
-theorem openEmbedding_iff_openEmbedding_of_supᵢ_eq_top (h : Continuous f) :
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (OpenEmbedding.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), OpenEmbedding.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
+Case conversion may be inaccurate. Consider using '#align open_embedding_iff_open_embedding_of_supr_eq_top openEmbedding_iff_openEmbedding_of_iSup_eq_topₓ'. -/
+theorem openEmbedding_iff_openEmbedding_of_iSup_eq_top (h : Continuous f) :
OpenEmbedding f ↔ ∀ i, OpenEmbedding ((U i).1.restrictPreimage f) :=
by
simp_rw [openEmbedding_iff]
rw [forall_and]
apply and_congr
- · apply embedding_iff_embedding_of_supᵢ_eq_top <;> assumption
+ · apply embedding_iff_embedding_of_iSup_eq_top <;> assumption
· simp_rw [Set.range_restrictPreimage]
- apply isOpen_iff_coe_preimage_of_supᵢ_eq_top hU
-#align open_embedding_iff_open_embedding_of_supr_eq_top openEmbedding_iff_openEmbedding_of_supᵢ_eq_top
+ apply isOpen_iff_coe_preimage_of_iSup_eq_top hU
+#align open_embedding_iff_open_embedding_of_supr_eq_top openEmbedding_iff_openEmbedding_of_iSup_eq_top
-/- warning: closed_embedding_iff_closed_embedding_of_supr_eq_top -> closedEmbedding_iff_closedEmbedding_of_supᵢ_eq_top is a dubious translation:
+/- warning: closed_embedding_iff_closed_embedding_of_supr_eq_top -> closedEmbedding_iff_closedEmbedding_of_iSup_eq_top is a dubious translation:
lean 3 declaration is
- forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (supᵢ.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (ClosedEmbedding.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), ClosedEmbedding.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (iSup.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (ClosedEmbedding.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), ClosedEmbedding.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
but is expected to have type
- forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (ClosedEmbedding.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), ClosedEmbedding.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
-Case conversion may be inaccurate. Consider using '#align closed_embedding_iff_closed_embedding_of_supr_eq_top closedEmbedding_iff_closedEmbedding_of_supᵢ_eq_topₓ'. -/
-theorem closedEmbedding_iff_closedEmbedding_of_supᵢ_eq_top (h : Continuous f) :
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (iSup.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (ClosedEmbedding.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), ClosedEmbedding.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
+Case conversion may be inaccurate. Consider using '#align closed_embedding_iff_closed_embedding_of_supr_eq_top closedEmbedding_iff_closedEmbedding_of_iSup_eq_topₓ'. -/
+theorem closedEmbedding_iff_closedEmbedding_of_iSup_eq_top (h : Continuous f) :
ClosedEmbedding f ↔ ∀ i, ClosedEmbedding ((U i).1.restrictPreimage f) :=
by
simp_rw [closedEmbedding_iff]
rw [forall_and]
apply and_congr
- · apply embedding_iff_embedding_of_supᵢ_eq_top <;> assumption
+ · apply embedding_iff_embedding_of_iSup_eq_top <;> assumption
· simp_rw [Set.range_restrictPreimage]
- apply isClosed_iff_coe_preimage_of_supᵢ_eq_top hU
-#align closed_embedding_iff_closed_embedding_of_supr_eq_top closedEmbedding_iff_closedEmbedding_of_supᵢ_eq_top
+ apply isClosed_iff_coe_preimage_of_iSup_eq_top hU
+#align closed_embedding_iff_closed_embedding_of_supr_eq_top closedEmbedding_iff_closedEmbedding_of_iSup_eq_top
mathlib commit https://github.com/leanprover-community/mathlib/commit/039ef89bef6e58b32b62898dd48e9d1a4312bb65
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
! This file was ported from Lean 3 source module topology.local_at_target
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit 25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.Topology.Sets.Opens
/-!
# Properties of maps that are local at the target.
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
We show that the following properties of continuous maps are local at the target :
- `inducing`
- `embedding`
mathlib commit https://github.com/leanprover-community/mathlib/commit/e05ead7993520a432bec94ac504842d90707ad63
@@ -30,6 +30,7 @@ variable {α β : Type _} [TopologicalSpace α] [TopologicalSpace β] {f : α
variable {s : Set β} {ι : Type _} {U : ι → Opens β} (hU : supᵢ U = ⊤)
+#print Set.restrictPreimage_inducing /-
theorem Set.restrictPreimage_inducing (s : Set β) (h : Inducing f) :
Inducing (s.restrictPreimage f) :=
by
@@ -38,36 +39,44 @@ theorem Set.restrictPreimage_inducing (s : Set β) (h : Inducing f) :
intro a
rw [← h, ← inducing_coe.nhds_eq_comap]
#align set.restrict_preimage_inducing Set.restrictPreimage_inducing
+-/
alias Set.restrictPreimage_inducing ← Inducing.restrictPreimage
#align inducing.restrict_preimage Inducing.restrictPreimage
+#print Set.restrictPreimage_embedding /-
theorem Set.restrictPreimage_embedding (s : Set β) (h : Embedding f) :
Embedding (s.restrictPreimage f) :=
⟨h.1.restrictPreimage s, h.2.restrictPreimage s⟩
#align set.restrict_preimage_embedding Set.restrictPreimage_embedding
+-/
alias Set.restrictPreimage_embedding ← Embedding.restrictPreimage
#align embedding.restrict_preimage Embedding.restrictPreimage
+#print Set.restrictPreimage_openEmbedding /-
theorem Set.restrictPreimage_openEmbedding (s : Set β) (h : OpenEmbedding f) :
OpenEmbedding (s.restrictPreimage f) :=
⟨h.1.restrictPreimage s,
(s.range_restrictPreimage f).symm ▸ continuous_subtype_val.isOpen_preimage _ h.2⟩
#align set.restrict_preimage_open_embedding Set.restrictPreimage_openEmbedding
+-/
alias Set.restrictPreimage_openEmbedding ← OpenEmbedding.restrictPreimage
#align open_embedding.restrict_preimage OpenEmbedding.restrictPreimage
+#print Set.restrictPreimage_closedEmbedding /-
theorem Set.restrictPreimage_closedEmbedding (s : Set β) (h : ClosedEmbedding f) :
ClosedEmbedding (s.restrictPreimage f) :=
⟨h.1.restrictPreimage s,
(s.range_restrictPreimage f).symm ▸ inducing_subtype_val.isClosed_preimage _ h.2⟩
#align set.restrict_preimage_closed_embedding Set.restrictPreimage_closedEmbedding
+-/
alias Set.restrictPreimage_closedEmbedding ← ClosedEmbedding.restrictPreimage
#align closed_embedding.restrict_preimage ClosedEmbedding.restrictPreimage
+#print Set.restrictPreimage_isClosedMap /-
theorem Set.restrictPreimage_isClosedMap (s : Set β) (H : IsClosedMap f) :
IsClosedMap (s.restrictPreimage f) :=
by
@@ -80,9 +89,16 @@ theorem Set.restrictPreimage_isClosedMap (s : Set β) (H : IsClosedMap f) :
simpa [Set.restrictPreimage, ← Subtype.coe_inj]
exact ⟨fun ⟨a, b, c⟩ => ⟨a, c.symm ▸ hx, b, c⟩, fun ⟨a, _, b, c⟩ => ⟨a, b, c⟩⟩
#align set.restrict_preimage_is_closed_map Set.restrictPreimage_isClosedMap
+-/
include hU
+/- warning: is_open_iff_inter_of_supr_eq_top -> isOpen_iff_inter_of_supᵢ_eq_top is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} β _inst_2 (Inter.inter.{u1} (Set.{u1} β) (Set.hasInter.{u1} β) s ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (TopologicalSpace.Opens.{u1} β _inst_2) (Set.{u1} β) (HasLiftT.mk.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (Set.{u1} β) (CoeTCₓ.coe.{succ u1, succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (Set.{u1} β) (SetLike.Set.hasCoeT.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)))) (U i)))))
+but is expected to have type
+ forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} β _inst_2 (Inter.inter.{u1} (Set.{u1} β) (Set.instInterSet.{u1} β) s (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2) (U i)))))
+Case conversion may be inaccurate. Consider using '#align is_open_iff_inter_of_supr_eq_top isOpen_iff_inter_of_supᵢ_eq_topₓ'. -/
theorem isOpen_iff_inter_of_supᵢ_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsOpen (s ∩ U i) :=
by
constructor
@@ -96,6 +112,12 @@ theorem isOpen_iff_inter_of_supᵢ_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsO
exact isOpen_unionᵢ H
#align is_open_iff_inter_of_supr_eq_top isOpen_iff_inter_of_supᵢ_eq_top
+/- warning: is_open_iff_coe_preimage_of_supr_eq_top -> isOpen_iff_coe_preimage_of_supᵢ_eq_top is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) (Subtype.topologicalSpace.{u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeSubtype.{succ u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i))))))) s)))
+but is expected to have type
+ forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsOpen.{u1} β _inst_2 s) (forall (i : ι), IsOpen.{u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) β (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2) (U i)))) s)))
+Case conversion may be inaccurate. Consider using '#align is_open_iff_coe_preimage_of_supr_eq_top isOpen_iff_coe_preimage_of_supᵢ_eq_topₓ'. -/
theorem isOpen_iff_coe_preimage_of_supᵢ_eq_top (s : Set β) :
IsOpen s ↔ ∀ i, IsOpen (coe ⁻¹' s : Set (U i)) :=
by
@@ -105,11 +127,23 @@ theorem isOpen_iff_coe_preimage_of_supᵢ_eq_top (s : Set β) :
assumption
#align is_open_iff_coe_preimage_of_supr_eq_top isOpen_iff_coe_preimage_of_supᵢ_eq_top
+/- warning: is_closed_iff_coe_preimage_of_supr_eq_top -> isClosed_iff_coe_preimage_of_supᵢ_eq_top is a dubious translation:
+lean 3 declaration is
+ forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toHasTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsClosed.{u1} β _inst_2 s) (forall (i : ι), IsClosed.{u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) (Subtype.topologicalSpace.{u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (TopologicalSpace.Opens.{u1} β _inst_2) Type.{u1} (SetLike.hasCoeToSort.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) (U i)) β (coeSubtype.{succ u1} β (fun (x : β) => Membership.Mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.hasMem.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.setLike.{u1} β _inst_2)) x (U i))))))) s)))
+but is expected to have type
+ forall {β : Type.{u1}} [_inst_2 : TopologicalSpace.{u1} β] {ι : Type.{u2}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u2} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (forall (s : Set.{u1} β), Iff (IsClosed.{u1} β _inst_2 s) (forall (i : ι), IsClosed.{u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i)) _inst_2) (Set.preimage.{u1, u1} (Subtype.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (TopologicalSpace.Opens.{u1} β _inst_2) (SetLike.instMembership.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2)) x (U i))) β (Subtype.val.{succ u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (SetLike.coe.{u1, u1} (TopologicalSpace.Opens.{u1} β _inst_2) β (TopologicalSpace.Opens.instSetLikeOpens.{u1} β _inst_2) (U i)))) s)))
+Case conversion may be inaccurate. Consider using '#align is_closed_iff_coe_preimage_of_supr_eq_top isClosed_iff_coe_preimage_of_supᵢ_eq_topₓ'. -/
theorem isClosed_iff_coe_preimage_of_supᵢ_eq_top (s : Set β) :
IsClosed s ↔ ∀ i, IsClosed (coe ⁻¹' s : Set (U i)) := by
simpa using isOpen_iff_coe_preimage_of_supᵢ_eq_top hU (sᶜ)
#align is_closed_iff_coe_preimage_of_supr_eq_top isClosed_iff_coe_preimage_of_supᵢ_eq_top
+/- warning: is_closed_map_iff_is_closed_map_of_supr_eq_top -> isClosedMap_iff_isClosedMap_of_supᵢ_eq_top is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (supᵢ.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Iff (IsClosedMap.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), IsClosedMap.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Iff (IsClosedMap.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), IsClosedMap.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
+Case conversion may be inaccurate. Consider using '#align is_closed_map_iff_is_closed_map_of_supr_eq_top isClosedMap_iff_isClosedMap_of_supᵢ_eq_topₓ'. -/
theorem isClosedMap_iff_isClosedMap_of_supᵢ_eq_top :
IsClosedMap f ↔ ∀ i, IsClosedMap ((U i).1.restrictPreimage f) :=
by
@@ -124,6 +158,12 @@ theorem isClosedMap_iff_isClosedMap_of_supᵢ_eq_top :
exact ⟨fun ⟨a, b, c⟩ => ⟨a, c.symm ▸ hx, b, c⟩, fun ⟨a, _, b, c⟩ => ⟨a, b, c⟩⟩
#align is_closed_map_iff_is_closed_map_of_supr_eq_top isClosedMap_iff_isClosedMap_of_supᵢ_eq_top
+/- warning: inducing_iff_inducing_of_supr_eq_top -> inducing_iff_inducing_of_supᵢ_eq_top is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (supᵢ.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (Inducing.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), Inducing.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (Inducing.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), Inducing.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
+Case conversion may be inaccurate. Consider using '#align inducing_iff_inducing_of_supr_eq_top inducing_iff_inducing_of_supᵢ_eq_topₓ'. -/
theorem inducing_iff_inducing_of_supᵢ_eq_top (h : Continuous f) :
Inducing f ↔ ∀ i, Inducing ((U i).1.restrictPreimage f) :=
by
@@ -144,6 +184,12 @@ theorem inducing_iff_inducing_of_supᵢ_eq_top (h : Continuous f) :
exact Filter.preimage_mem_comap ((U i).2.mem_nhds hi)
#align inducing_iff_inducing_of_supr_eq_top inducing_iff_inducing_of_supᵢ_eq_top
+/- warning: embedding_iff_embedding_of_supr_eq_top -> embedding_iff_embedding_of_supᵢ_eq_top is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (supᵢ.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (Embedding.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), Embedding.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (Embedding.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), Embedding.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
+Case conversion may be inaccurate. Consider using '#align embedding_iff_embedding_of_supr_eq_top embedding_iff_embedding_of_supᵢ_eq_topₓ'. -/
theorem embedding_iff_embedding_of_supᵢ_eq_top (h : Continuous f) :
Embedding f ↔ ∀ i, Embedding ((U i).1.restrictPreimage f) :=
by
@@ -156,6 +202,12 @@ theorem embedding_iff_embedding_of_supᵢ_eq_top (h : Continuous f) :
simp
#align embedding_iff_embedding_of_supr_eq_top embedding_iff_embedding_of_supᵢ_eq_top
+/- warning: open_embedding_iff_open_embedding_of_supr_eq_top -> openEmbedding_iff_openEmbedding_of_supᵢ_eq_top is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (supᵢ.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (OpenEmbedding.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), OpenEmbedding.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (OpenEmbedding.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), OpenEmbedding.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
+Case conversion may be inaccurate. Consider using '#align open_embedding_iff_open_embedding_of_supr_eq_top openEmbedding_iff_openEmbedding_of_supᵢ_eq_topₓ'. -/
theorem openEmbedding_iff_openEmbedding_of_supᵢ_eq_top (h : Continuous f) :
OpenEmbedding f ↔ ∀ i, OpenEmbedding ((U i).1.restrictPreimage f) :=
by
@@ -167,6 +219,12 @@ theorem openEmbedding_iff_openEmbedding_of_supᵢ_eq_top (h : Continuous f) :
apply isOpen_iff_coe_preimage_of_supᵢ_eq_top hU
#align open_embedding_iff_open_embedding_of_supr_eq_top openEmbedding_iff_openEmbedding_of_supᵢ_eq_top
+/- warning: closed_embedding_iff_closed_embedding_of_supr_eq_top -> closedEmbedding_iff_closedEmbedding_of_supᵢ_eq_top is a dubious translation:
+lean 3 declaration is
+ forall {α : Type.{u1}} {β : Type.{u2}} [_inst_1 : TopologicalSpace.{u1} α] [_inst_2 : TopologicalSpace.{u2} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u2} β _inst_2)}, (Eq.{succ u2} (TopologicalSpace.Opens.{u2} β _inst_2) (supᵢ.{u2, succ u3} (TopologicalSpace.Opens.{u2} β _inst_2) (ConditionallyCompleteLattice.toHasSup.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2))) ι U) (Top.top.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (CompleteLattice.toHasTop.{u2} (TopologicalSpace.Opens.{u2} β _inst_2) (TopologicalSpace.Opens.completeLattice.{u2} β _inst_2)))) -> (Continuous.{u1, u2} α β _inst_1 _inst_2 f) -> (Iff (ClosedEmbedding.{u1, u2} α β _inst_1 _inst_2 f) (forall (i : ι), ClosedEmbedding.{u1, u2} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} α) Type.{u1} (Set.hasCoeToSort.{u1} α) (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) (coeSort.{succ u2, succ (succ u2)} (Set.{u2} β) Type.{u2} (Set.hasCoeToSort.{u2} β) (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) (Subtype.topologicalSpace.{u1} α (fun (x : α) => Membership.Mem.{u1, u1} α (Set.{u1} α) (Set.hasMem.{u1} α) x (Set.preimage.{u1, u2} α β f (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)))) _inst_1) (Subtype.topologicalSpace.{u2} β (fun (x : β) => Membership.Mem.{u2, u2} β (Set.{u2} β) (Set.hasMem.{u2} β) x (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u1, u2} α β (TopologicalSpace.Opens.carrier.{u2} β _inst_2 (U i)) f)))
+but is expected to have type
+ forall {α : Type.{u2}} {β : Type.{u1}} [_inst_1 : TopologicalSpace.{u2} α] [_inst_2 : TopologicalSpace.{u1} β] {f : α -> β} {ι : Type.{u3}} {U : ι -> (TopologicalSpace.Opens.{u1} β _inst_2)}, (Eq.{succ u1} (TopologicalSpace.Opens.{u1} β _inst_2) (supᵢ.{u1, succ u3} (TopologicalSpace.Opens.{u1} β _inst_2) (ConditionallyCompleteLattice.toSupSet.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toConditionallyCompleteLattice.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2))) ι U) (Top.top.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (CompleteLattice.toTop.{u1} (TopologicalSpace.Opens.{u1} β _inst_2) (TopologicalSpace.Opens.instCompleteLatticeOpens.{u1} β _inst_2)))) -> (Continuous.{u2, u1} α β _inst_1 _inst_2 f) -> (Iff (ClosedEmbedding.{u2, u1} α β _inst_1 _inst_2 f) (forall (i : ι), ClosedEmbedding.{u2, u1} (Set.Elem.{u2} α (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) (Set.Elem.{u1} β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) (instTopologicalSpaceSubtype.{u2} α (fun (x : α) => Membership.mem.{u2, u2} α (Set.{u2} α) (Set.instMembershipSet.{u2} α) x (Set.preimage.{u2, u1} α β f (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)))) _inst_1) (instTopologicalSpaceSubtype.{u1} β (fun (x : β) => Membership.mem.{u1, u1} β (Set.{u1} β) (Set.instMembershipSet.{u1} β) x (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i))) _inst_2) (Set.restrictPreimage.{u2, u1} α β (TopologicalSpace.Opens.carrier.{u1} β _inst_2 (U i)) f)))
+Case conversion may be inaccurate. Consider using '#align closed_embedding_iff_closed_embedding_of_supr_eq_top closedEmbedding_iff_closedEmbedding_of_supᵢ_eq_topₓ'. -/
theorem closedEmbedding_iff_closedEmbedding_of_supᵢ_eq_top (h : Continuous f) :
ClosedEmbedding f ↔ ∀ i, ClosedEmbedding ((U i).1.restrictPreimage f) :=
by
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
image_restrictPreimage
(#11640)
image_restrictPreimage
; use it to simplify the proof of Set.restrictPreimage_isClosedMap
Set.restrictPreimage_isOpenMap
.IsClosedMap.restrictPreimage
, which duplicates Set.restrictPreimage_isClosedMap
Co-authored-by: BGuillemet <115193742+BGuillemet@users.noreply.github.com>
@@ -63,17 +63,29 @@ theorem Set.restrictPreimage_closedEmbedding (s : Set β) (h : ClosedEmbedding f
alias ClosedEmbedding.restrictPreimage := Set.restrictPreimage_closedEmbedding
#align closed_embedding.restrict_preimage ClosedEmbedding.restrictPreimage
-theorem Set.restrictPreimage_isClosedMap (s : Set β) (H : IsClosedMap f) :
+theorem IsClosedMap.restrictPreimage (H : IsClosedMap f) (s : Set β) :
IsClosedMap (s.restrictPreimage f) := by
- rintro t ⟨u, hu, e⟩
- refine' ⟨⟨_, (H _ (IsOpen.isClosed_compl hu)).1, _⟩⟩
- rw [← (congr_arg HasCompl.compl e).trans (compl_compl t)]
- simp only [Set.preimage_compl, compl_inj_iff]
- ext ⟨x, hx⟩
- suffices (∃ y, y ∉ u ∧ f y = x) ↔ ∃ y, y ∉ u ∧ f y ∈ s ∧ f y = x by
- simpa [Set.restrictPreimage, ← Subtype.coe_inj]
- exact ⟨fun ⟨a, b, c⟩ => ⟨a, b, c.symm ▸ hx, c⟩, fun ⟨a, b, _, c⟩ => ⟨a, b, c⟩⟩
-#align set.restrict_preimage_is_closed_map Set.restrictPreimage_isClosedMap
+ intro t
+ suffices ∀ u, IsClosed u → Subtype.val ⁻¹' u = t →
+ ∃ v, IsClosed v ∧ Subtype.val ⁻¹' v = s.restrictPreimage f '' t by
+ simpa [isClosed_induced_iff]
+ exact fun u hu e => ⟨f '' u, H u hu, by simp [← e, image_restrictPreimage]⟩
+
+@[deprecated] -- since 2024-04-02
+theorem Set.restrictPreimage_isClosedMap (s : Set β) (H : IsClosedMap f) :
+ IsClosedMap (s.restrictPreimage f) := H.restrictPreimage s
+
+theorem IsOpenMap.restrictPreimage (H : IsOpenMap f) (s : Set β) :
+ IsOpenMap (s.restrictPreimage f) := by
+ intro t
+ suffices ∀ u, IsOpen u → Subtype.val ⁻¹' u = t →
+ ∃ v, IsOpen v ∧ Subtype.val ⁻¹' v = s.restrictPreimage f '' t by
+ simpa [isOpen_induced_iff]
+ exact fun u hu e => ⟨f '' u, H u hu, by simp [← e, image_restrictPreimage]⟩
+
+@[deprecated] -- since 2024-04-02
+theorem Set.restrictPreimage_isOpenMap (s : Set β) (H : IsOpenMap f) :
+ IsOpenMap (s.restrictPreimage f) := H.restrictPreimage s
theorem isOpen_iff_inter_of_iSup_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsOpen (s ∩ U i) := by
constructor
@@ -103,7 +115,7 @@ theorem isClosed_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
theorem isClosedMap_iff_isClosedMap_of_iSup_eq_top :
IsClosedMap f ↔ ∀ i, IsClosedMap ((U i).1.restrictPreimage f) := by
- refine' ⟨fun h i => Set.restrictPreimage_isClosedMap _ h, _⟩
+ refine' ⟨fun h i => h.restrictPreimage _, _⟩
rintro H s hs
rw [isClosed_iff_coe_preimage_of_iSup_eq_top hU]
intro i
Std defines triv
, a slight variation on trivial
. It appears that Mathlib doesn't care about the distinction (any more?) and so we can consolidate on a single tactic.
https://github.com/leanprover/std4/pull/712 separately replaces triv
in Std with an error explaining to use trivial
.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -126,7 +126,7 @@ theorem inducing_iff_inducing_of_iSup_eq_top (h : Continuous f) :
Opens.mem_iSup.mp
(show f x ∈ iSup U by
rw [hU]
- triv)
+ trivial)
erw [← OpenEmbedding.map_nhds_eq (h.1 _ (U i).2).openEmbedding_subtype_val ⟨x, hi⟩]
rw [(H i) ⟨x, hi⟩, Filter.subtype_coe_map_comap, Function.comp_apply, Subtype.coe_mk,
inf_eq_left, Filter.le_principal_iff]
All these lemmas refer to the range of some function being open/range (i.e. isOpen
or isClosed
).
@@ -48,7 +48,7 @@ alias Embedding.restrictPreimage := Set.restrictPreimage_embedding
theorem Set.restrictPreimage_openEmbedding (s : Set β) (h : OpenEmbedding f) :
OpenEmbedding (s.restrictPreimage f) :=
⟨h.1.restrictPreimage s,
- (s.range_restrictPreimage f).symm ▸ continuous_subtype_val.isOpen_preimage _ h.2⟩
+ (s.range_restrictPreimage f).symm ▸ continuous_subtype_val.isOpen_preimage _ h.isOpen_range⟩
#align set.restrict_preimage_open_embedding Set.restrictPreimage_openEmbedding
alias OpenEmbedding.restrictPreimage := Set.restrictPreimage_openEmbedding
@@ -57,7 +57,7 @@ alias OpenEmbedding.restrictPreimage := Set.restrictPreimage_openEmbedding
theorem Set.restrictPreimage_closedEmbedding (s : Set β) (h : ClosedEmbedding f) :
ClosedEmbedding (s.restrictPreimage f) :=
⟨h.1.restrictPreimage s,
- (s.range_restrictPreimage f).symm ▸ inducing_subtype_val.isClosed_preimage _ h.2⟩
+ (s.range_restrictPreimage f).symm ▸ inducing_subtype_val.isClosed_preimage _ h.isClosed_range⟩
#align set.restrict_preimage_closed_embedding Set.restrictPreimage_closedEmbedding
alias ClosedEmbedding.restrictPreimage := Set.restrictPreimage_closedEmbedding
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -24,7 +24,6 @@ open TopologicalSpace Set Filter
open Topology Filter
variable {α β : Type*} [TopologicalSpace α] [TopologicalSpace β] {f : α → β}
-
variable {s : Set β} {ι : Type*} {U : ι → Opens β} (hU : iSup U = ⊤)
theorem Set.restrictPreimage_inducing (s : Set β) (h : Inducing f) :
@@ -35,7 +35,7 @@ theorem Set.restrictPreimage_inducing (s : Set β) (h : Inducing f) :
rw [← h, ← inducing_subtype_val.nhds_eq_comap]
#align set.restrict_preimage_inducing Set.restrictPreimage_inducing
-alias Set.restrictPreimage_inducing ← Inducing.restrictPreimage
+alias Inducing.restrictPreimage := Set.restrictPreimage_inducing
#align inducing.restrict_preimage Inducing.restrictPreimage
theorem Set.restrictPreimage_embedding (s : Set β) (h : Embedding f) :
@@ -43,7 +43,7 @@ theorem Set.restrictPreimage_embedding (s : Set β) (h : Embedding f) :
⟨h.1.restrictPreimage s, h.2.restrictPreimage s⟩
#align set.restrict_preimage_embedding Set.restrictPreimage_embedding
-alias Set.restrictPreimage_embedding ← Embedding.restrictPreimage
+alias Embedding.restrictPreimage := Set.restrictPreimage_embedding
#align embedding.restrict_preimage Embedding.restrictPreimage
theorem Set.restrictPreimage_openEmbedding (s : Set β) (h : OpenEmbedding f) :
@@ -52,7 +52,7 @@ theorem Set.restrictPreimage_openEmbedding (s : Set β) (h : OpenEmbedding f) :
(s.range_restrictPreimage f).symm ▸ continuous_subtype_val.isOpen_preimage _ h.2⟩
#align set.restrict_preimage_open_embedding Set.restrictPreimage_openEmbedding
-alias Set.restrictPreimage_openEmbedding ← OpenEmbedding.restrictPreimage
+alias OpenEmbedding.restrictPreimage := Set.restrictPreimage_openEmbedding
#align open_embedding.restrict_preimage OpenEmbedding.restrictPreimage
theorem Set.restrictPreimage_closedEmbedding (s : Set β) (h : ClosedEmbedding f) :
@@ -61,7 +61,7 @@ theorem Set.restrictPreimage_closedEmbedding (s : Set β) (h : ClosedEmbedding f
(s.range_restrictPreimage f).symm ▸ inducing_subtype_val.isClosed_preimage _ h.2⟩
#align set.restrict_preimage_closed_embedding Set.restrictPreimage_closedEmbedding
-alias Set.restrictPreimage_closedEmbedding ← ClosedEmbedding.restrictPreimage
+alias ClosedEmbedding.restrictPreimage := Set.restrictPreimage_closedEmbedding
#align closed_embedding.restrict_preimage ClosedEmbedding.restrictPreimage
theorem Set.restrictPreimage_isClosedMap (s : Set β) (H : IsClosedMap f) :
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -23,9 +23,9 @@ open TopologicalSpace Set Filter
open Topology Filter
-variable {α β : Type _} [TopologicalSpace α] [TopologicalSpace β] {f : α → β}
+variable {α β : Type*} [TopologicalSpace α] [TopologicalSpace β] {f : α → β}
-variable {s : Set β} {ι : Type _} {U : ι → Opens β} (hU : iSup U = ⊤)
+variable {s : Set β} {ι : Type*} {U : ι → Opens β} (hU : iSup U = ⊤)
theorem Set.restrictPreimage_inducing (s : Set β) (h : Inducing f) :
Inducing (s.restrictPreimage f) := by
@@ -2,14 +2,11 @@
Copyright (c) 2022 Andrew Yang. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Andrew Yang
-
-! This file was ported from Lean 3 source module topology.local_at_target
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Topology.Sets.Opens
+#align_import topology.local_at_target from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
+
/-!
# Properties of maps that are local at the target.
@@ -83,7 +83,7 @@ theorem isOpen_iff_inter_of_iSup_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsOpe
constructor
· exact fun H i => H.inter (U i).2
· intro H
- have : (⋃ i, (U i : Set β)) = Set.univ := by
+ have : ⋃ i, (U i : Set β) = Set.univ := by
convert congr_arg (SetLike.coe) hU
simp
rw [← s.inter_univ, ← this, Set.inter_iUnion]
@@ -102,7 +102,7 @@ theorem isOpen_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
theorem isClosed_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
IsClosed s ↔ ∀ i, IsClosed ((↑) ⁻¹' s : Set (U i)) := by
- simpa using isOpen_iff_coe_preimage_of_iSup_eq_top hU (sᶜ)
+ simpa using isOpen_iff_coe_preimage_of_iSup_eq_top hU sᶜ
#align is_closed_iff_coe_preimage_of_supr_eq_top isClosed_iff_coe_preimage_of_iSup_eq_top
theorem isClosedMap_iff_isClosedMap_of_iSup_eq_top :
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -33,7 +33,7 @@ variable {s : Set β} {ι : Type _} {U : ι → Opens β} (hU : iSup U = ⊤)
theorem Set.restrictPreimage_inducing (s : Set β) (h : Inducing f) :
Inducing (s.restrictPreimage f) := by
simp_rw [inducing_subtype_val.inducing_iff, inducing_iff_nhds, restrictPreimage,
- MapsTo.coe_restrict, restrict_eq, ← @Filter.comap_comap _ _ _ _ _ f, Function.comp_apply] at h⊢
+ MapsTo.coe_restrict, restrict_eq, ← @Filter.comap_comap _ _ _ _ _ f, Function.comp_apply] at h ⊢
intro a
rw [← h, ← inducing_subtype_val.nhds_eq_comap]
#align set.restrict_preimage_inducing Set.restrictPreimage_inducing
fix-comments.py
on all files.@@ -14,10 +14,10 @@ import Mathlib.Topology.Sets.Opens
# Properties of maps that are local at the target.
We show that the following properties of continuous maps are local at the target :
-- `inducing`
-- `embedding`
-- `open_embedding`
-- `closed_embedding`
+- `Inducing`
+- `Embedding`
+- `OpenEmbedding`
+- `ClosedEmbedding`
-/
sSup
/iSup
(#3938)
As discussed on Zulip
supₛ
→ sSup
infₛ
→ sInf
supᵢ
→ iSup
infᵢ
→ iInf
bsupₛ
→ bsSup
binfₛ
→ bsInf
bsupᵢ
→ biSup
binfᵢ
→ biInf
csupₛ
→ csSup
cinfₛ
→ csInf
csupᵢ
→ ciSup
cinfᵢ
→ ciInf
unionₛ
→ sUnion
interₛ
→ sInter
unionᵢ
→ iUnion
interᵢ
→ iInter
bunionₛ
→ bsUnion
binterₛ
→ bsInter
bunionᵢ
→ biUnion
binterᵢ
→ biInter
Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>
@@ -28,7 +28,7 @@ open Topology Filter
variable {α β : Type _} [TopologicalSpace α] [TopologicalSpace β] {f : α → β}
-variable {s : Set β} {ι : Type _} {U : ι → Opens β} (hU : supᵢ U = ⊤)
+variable {s : Set β} {ι : Type _} {U : ι → Opens β} (hU : iSup U = ⊤)
theorem Set.restrictPreimage_inducing (s : Set β) (h : Inducing f) :
Inducing (s.restrictPreimage f) := by
@@ -79,46 +79,46 @@ theorem Set.restrictPreimage_isClosedMap (s : Set β) (H : IsClosedMap f) :
exact ⟨fun ⟨a, b, c⟩ => ⟨a, b, c.symm ▸ hx, c⟩, fun ⟨a, b, _, c⟩ => ⟨a, b, c⟩⟩
#align set.restrict_preimage_is_closed_map Set.restrictPreimage_isClosedMap
-theorem isOpen_iff_inter_of_supᵢ_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsOpen (s ∩ U i) := by
+theorem isOpen_iff_inter_of_iSup_eq_top (s : Set β) : IsOpen s ↔ ∀ i, IsOpen (s ∩ U i) := by
constructor
· exact fun H i => H.inter (U i).2
· intro H
have : (⋃ i, (U i : Set β)) = Set.univ := by
convert congr_arg (SetLike.coe) hU
simp
- rw [← s.inter_univ, ← this, Set.inter_unionᵢ]
- exact isOpen_unionᵢ H
-#align is_open_iff_inter_of_supr_eq_top isOpen_iff_inter_of_supᵢ_eq_top
+ rw [← s.inter_univ, ← this, Set.inter_iUnion]
+ exact isOpen_iUnion H
+#align is_open_iff_inter_of_supr_eq_top isOpen_iff_inter_of_iSup_eq_top
-theorem isOpen_iff_coe_preimage_of_supᵢ_eq_top (s : Set β) :
+theorem isOpen_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
IsOpen s ↔ ∀ i, IsOpen ((↑) ⁻¹' s : Set (U i)) := by
-- Porting note: rewrote to avoid ´simp´ issues
- rw [isOpen_iff_inter_of_supᵢ_eq_top hU s]
+ rw [isOpen_iff_inter_of_iSup_eq_top hU s]
refine forall_congr' fun i => ?_
rw [(U _).2.openEmbedding_subtype_val.open_iff_image_open]
erw [Set.image_preimage_eq_inter_range]
rw [Subtype.range_coe, Opens.carrier_eq_coe]
-#align is_open_iff_coe_preimage_of_supr_eq_top isOpen_iff_coe_preimage_of_supᵢ_eq_top
+#align is_open_iff_coe_preimage_of_supr_eq_top isOpen_iff_coe_preimage_of_iSup_eq_top
-theorem isClosed_iff_coe_preimage_of_supᵢ_eq_top (s : Set β) :
+theorem isClosed_iff_coe_preimage_of_iSup_eq_top (s : Set β) :
IsClosed s ↔ ∀ i, IsClosed ((↑) ⁻¹' s : Set (U i)) := by
- simpa using isOpen_iff_coe_preimage_of_supᵢ_eq_top hU (sᶜ)
-#align is_closed_iff_coe_preimage_of_supr_eq_top isClosed_iff_coe_preimage_of_supᵢ_eq_top
+ simpa using isOpen_iff_coe_preimage_of_iSup_eq_top hU (sᶜ)
+#align is_closed_iff_coe_preimage_of_supr_eq_top isClosed_iff_coe_preimage_of_iSup_eq_top
-theorem isClosedMap_iff_isClosedMap_of_supᵢ_eq_top :
+theorem isClosedMap_iff_isClosedMap_of_iSup_eq_top :
IsClosedMap f ↔ ∀ i, IsClosedMap ((U i).1.restrictPreimage f) := by
refine' ⟨fun h i => Set.restrictPreimage_isClosedMap _ h, _⟩
rintro H s hs
- rw [isClosed_iff_coe_preimage_of_supᵢ_eq_top hU]
+ rw [isClosed_iff_coe_preimage_of_iSup_eq_top hU]
intro i
convert H i _ ⟨⟨_, hs.1, eq_compl_comm.mpr rfl⟩⟩
ext ⟨x, hx⟩
suffices (∃ y, y ∈ s ∧ f y = x) ↔ ∃ y, y ∈ s ∧ f y ∈ U i ∧ f y = x by
simpa [Set.restrictPreimage, ← Subtype.coe_inj]
exact ⟨fun ⟨a, b, c⟩ => ⟨a, b, c.symm ▸ hx, c⟩, fun ⟨a, b, _, c⟩ => ⟨a, b, c⟩⟩
-#align is_closed_map_iff_is_closed_map_of_supr_eq_top isClosedMap_iff_isClosedMap_of_supᵢ_eq_top
+#align is_closed_map_iff_is_closed_map_of_supr_eq_top isClosedMap_iff_isClosedMap_of_iSup_eq_top
-theorem inducing_iff_inducing_of_supᵢ_eq_top (h : Continuous f) :
+theorem inducing_iff_inducing_of_iSup_eq_top (h : Continuous f) :
Inducing f ↔ ∀ i, Inducing ((U i).1.restrictPreimage f) := by
simp_rw [inducing_subtype_val.inducing_iff, inducing_iff_nhds, restrictPreimage,
MapsTo.coe_restrict, restrict_eq, ← @Filter.comap_comap _ _ _ _ _ f]
@@ -127,43 +127,43 @@ theorem inducing_iff_inducing_of_supᵢ_eq_top (h : Continuous f) :
rw [Function.comp_apply, ← H, ← inducing_subtype_val.nhds_eq_comap]
· intro H x
obtain ⟨i, hi⟩ :=
- Opens.mem_supᵢ.mp
- (show f x ∈ supᵢ U by
+ Opens.mem_iSup.mp
+ (show f x ∈ iSup U by
rw [hU]
triv)
erw [← OpenEmbedding.map_nhds_eq (h.1 _ (U i).2).openEmbedding_subtype_val ⟨x, hi⟩]
rw [(H i) ⟨x, hi⟩, Filter.subtype_coe_map_comap, Function.comp_apply, Subtype.coe_mk,
inf_eq_left, Filter.le_principal_iff]
exact Filter.preimage_mem_comap ((U i).2.mem_nhds hi)
-#align inducing_iff_inducing_of_supr_eq_top inducing_iff_inducing_of_supᵢ_eq_top
+#align inducing_iff_inducing_of_supr_eq_top inducing_iff_inducing_of_iSup_eq_top
-theorem embedding_iff_embedding_of_supᵢ_eq_top (h : Continuous f) :
+theorem embedding_iff_embedding_of_iSup_eq_top (h : Continuous f) :
Embedding f ↔ ∀ i, Embedding ((U i).1.restrictPreimage f) := by
simp_rw [embedding_iff]
rw [forall_and]
apply and_congr
- · apply inducing_iff_inducing_of_supᵢ_eq_top <;> assumption
- · apply Set.injective_iff_injective_of_unionᵢ_eq_univ
+ · apply inducing_iff_inducing_of_iSup_eq_top <;> assumption
+ · apply Set.injective_iff_injective_of_iUnion_eq_univ
convert congr_arg SetLike.coe hU
simp
-#align embedding_iff_embedding_of_supr_eq_top embedding_iff_embedding_of_supᵢ_eq_top
+#align embedding_iff_embedding_of_supr_eq_top embedding_iff_embedding_of_iSup_eq_top
-theorem openEmbedding_iff_openEmbedding_of_supᵢ_eq_top (h : Continuous f) :
+theorem openEmbedding_iff_openEmbedding_of_iSup_eq_top (h : Continuous f) :
OpenEmbedding f ↔ ∀ i, OpenEmbedding ((U i).1.restrictPreimage f) := by
simp_rw [openEmbedding_iff]
rw [forall_and]
apply and_congr
- · apply embedding_iff_embedding_of_supᵢ_eq_top <;> assumption
+ · apply embedding_iff_embedding_of_iSup_eq_top <;> assumption
· simp_rw [Set.range_restrictPreimage]
- apply isOpen_iff_coe_preimage_of_supᵢ_eq_top hU
-#align open_embedding_iff_open_embedding_of_supr_eq_top openEmbedding_iff_openEmbedding_of_supᵢ_eq_top
+ apply isOpen_iff_coe_preimage_of_iSup_eq_top hU
+#align open_embedding_iff_open_embedding_of_supr_eq_top openEmbedding_iff_openEmbedding_of_iSup_eq_top
-theorem closedEmbedding_iff_closedEmbedding_of_supᵢ_eq_top (h : Continuous f) :
+theorem closedEmbedding_iff_closedEmbedding_of_iSup_eq_top (h : Continuous f) :
ClosedEmbedding f ↔ ∀ i, ClosedEmbedding ((U i).1.restrictPreimage f) := by
simp_rw [closedEmbedding_iff]
rw [forall_and]
apply and_congr
- · apply embedding_iff_embedding_of_supᵢ_eq_top <;> assumption
+ · apply embedding_iff_embedding_of_iSup_eq_top <;> assumption
· simp_rw [Set.range_restrictPreimage]
- apply isClosed_iff_coe_preimage_of_supᵢ_eq_top hU
-#align closed_embedding_iff_closed_embedding_of_supr_eq_top closedEmbedding_iff_closedEmbedding_of_supᵢ_eq_top
+ apply isClosed_iff_coe_preimage_of_iSup_eq_top hU
+#align closed_embedding_iff_closed_embedding_of_supr_eq_top closedEmbedding_iff_closedEmbedding_of_iSup_eq_top
Co-authored-by: Moritz Doll <moritz.doll@googlemail.com>
The unported dependencies are