ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- ContinuousOpenMap.coe_toContinuousMap
@[simp] -- Porting note: new, simpNF of `toFun_eq_coe`
theorem coe_toContinuousMap (f : α →CO β) : (f.toContinuousMap : α → β) = f 
Arguments: {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [TopologicalSpace β] (f : α →CO β)
Goal: ⇑f.toContinuousMap = ⇑f
-- ContinuousOpenMap.ext
@[ext]
theorem ext {f g : α →CO β} (h : ∀ a, f a = g a) : f = g 
Arguments: {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [TopologicalSpace β] {f g : α →CO β} (h : ∀ (a : α), f a = g a)
Goal: f = g
-- ContinuousOpenMap.coe_copy
@[simp]
theorem coe_copy (f : α →CO β) (f' : α → β) (h : f' = f) : ⇑(f.copy f' h) = f' 
Arguments: {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [TopologicalSpace β] (f : α →CO β) (f' : α → β) (h : f' = ⇑f)
Goal: ⇑(f.copy f' h) = f'
-- ContinuousOpenMap.copy_eq
theorem copy_eq (f : α →CO β) (f' : α → β) (h : f' = f) : f.copy f' h = f 
Arguments: {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [TopologicalSpace β] (f : α →CO β) (f' : α → β) (h : f' = ⇑f)
Goal: f.copy f' h = f
-- ContinuousOpenMap.coe_id
@[simp]
theorem coe_id : ⇑(ContinuousOpenMap.id α) = id 
Arguments: (α : Type u_2) [TopologicalSpace α]
Goal: ⇑(ContinuousOpenMap.id α) = id
-- ContinuousOpenMap.id_apply
@[simp]
theorem id_apply (a : α) : ContinuousOpenMap.id α a = a 
Arguments: {α : Type u_2} [TopologicalSpace α] (a : α)
Goal: (ContinuousOpenMap.id α) a = a
-- ContinuousOpenMap.coe_comp
@[simp]
theorem coe_comp (f : β →CO γ) (g : α →CO β) : (f.comp g : α → γ) = f ∘ g 
Arguments: {α : Type u_2} {β : Type u_3} {γ : Type u_4} [TopologicalSpace α] [TopologicalSpace β] [TopologicalSpace γ] (f : β →CO γ) (g : α →CO β)
Goal: ⇑(f.comp g) = ⇑f ∘ ⇑g
-- ContinuousOpenMap.comp_apply
@[simp]
theorem comp_apply (f : β →CO γ) (g : α →CO β) (a : α) : (f.comp g) a = f (g a) 
Arguments: {α : Type u_2} {β : Type u_3} {γ : Type u_4} [TopologicalSpace α] [TopologicalSpace β] [TopologicalSpace γ] (f : β →CO γ) (g : α →CO β) (a : α)
Goal: (f.comp g) a = f (g a)
-- ContinuousOpenMap.comp_assoc
@[simp]
theorem comp_assoc (f : γ →CO δ) (g : β →CO γ) (h : α →CO β) :
    (f.comp g).comp h = f.comp (g.comp h) 
Arguments: {α : Type u_2} {β : Type u_3} {γ : Type u_4} {δ : Type u_5} [TopologicalSpace α] [TopologicalSpace β] [TopologicalSpace γ] [TopologicalSpace δ] (f : γ →CO δ) (g : β →CO γ) (h : α →CO β)
Goal: (f.comp g).comp h = f.comp (g.comp h)
-- ContinuousOpenMap.comp_id
@[simp]
theorem comp_id (f : α →CO β) : f.comp (ContinuousOpenMap.id α) = f 
Arguments: {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [TopologicalSpace β] (f : α →CO β)
Goal: f.comp (ContinuousOpenMap.id α) = f
-- ContinuousOpenMap.id_comp
@[simp]
theorem id_comp (f : α →CO β) : (ContinuousOpenMap.id β).comp f = f 
Arguments: {α : Type u_2} {β : Type u_3} [TopologicalSpace α] [TopologicalSpace β] (f : α →CO β)
Goal: (ContinuousOpenMap.id β).comp f = f
-- ContinuousOpenMap.cancel_right
@[simp]
theorem cancel_right {g₁ g₂ : β →CO γ} {f : α →CO β} (hf : Surjective f) :
    g₁.comp f = g₂.comp f ↔ g₁ = g₂ 
Arguments: {α : Type u_2} {β : Type u_3} {γ : Type u_4} [TopologicalSpace α] [TopologicalSpace β] [TopologicalSpace γ] {g₁ g₂ : β →CO γ} {f : α →CO β} (hf : Function.Surjective ⇑f)
Goal: g₁.comp f = g₂.comp f ↔ g₁ = g₂
-- ContinuousOpenMap.cancel_left
@[simp]
theorem cancel_left {g : β →CO γ} {f₁ f₂ : α →CO β} (hg : Injective g) :
    g.comp f₁ = g.comp f₂ ↔ f₁ = f₂ 
Arguments: {α : Type u_2} {β : Type u_3} {γ : Type u_4} [TopologicalSpace α] [TopologicalSpace β] [TopologicalSpace γ] {g : β →CO γ} {f₁ f₂ : α →CO β} (hg : Function.Injective ⇑g)
Goal: g.comp f₁ = g.comp f₂ ↔ f₁ = f₂
-- Scott.isωSup_iff_isLUB
theorem isωSup_iff_isLUB {α : Type u} [Preorder α] {c : Chain α} {x : α} :
    IsωSup c x ↔ IsLUB (range c) x 
Arguments: {α : Type u} [Preorder α] {c : OmegaCompletePartialOrder.Chain α} {x : α}
Goal: Scott.IsωSup c x ↔ IsLUB (Set.range ⇑c) x
-- Scott.isOpen_univ
theorem isOpen_univ : IsOpen α univ 
Arguments: (α : Type u) [OmegaCompletePartialOrder α]
Goal: Scott.IsOpen α Set.univ
-- Scott.IsOpen.inter
theorem IsOpen.inter (s t : Set α) : IsOpen α s → IsOpen α t → IsOpen α (s ∩ t) 
Arguments: (α : Type u) [OmegaCompletePartialOrder α] (s t : Set α)
Goal: Scott.IsOpen α s → Scott.IsOpen α t → Scott.IsOpen α (s ∩ t)
-- Scott.isOpen_sUnion
theorem isOpen_sUnion (s : Set (Set α)) (hs : ∀ t ∈ s, IsOpen α t) : IsOpen α (⋃₀ s) 
Arguments: (α : Type u) [OmegaCompletePartialOrder α] (s : Set (Set α)) (hs : ∀ t ∈ s, Scott.IsOpen α t)
Goal: Scott.IsOpen α (⋃₀ s)
-- Scott.IsOpen.isUpperSet
theorem IsOpen.isUpperSet {s : Set α} (hs : IsOpen α s) : IsUpperSet s 
Arguments: (α : Type u) [OmegaCompletePartialOrder α] {s : Set α} (hs : Scott.IsOpen α s)
Goal: IsUpperSet s
-- notBelow_isOpen
theorem notBelow_isOpen : IsOpen (notBelow y) 
Arguments: {α : Type u_1} [OmegaCompletePartialOrder α] (y : Scott α)
Goal: IsOpen (notBelow y)
-- isωSup_ωSup
theorem isωSup_ωSup {α} [OmegaCompletePartialOrder α] (c : Chain α) : IsωSup c (ωSup c) 
Arguments: {α : Type u_1} [OmegaCompletePartialOrder α] (c : OmegaCompletePartialOrder.Chain α)
Goal: Scott.IsωSup c (OmegaCompletePartialOrder.ωSup c)
-- scottContinuous_of_continuous
theorem scottContinuous_of_continuous {α β} [OmegaCompletePartialOrder α]
    [OmegaCompletePartialOrder β] (f : Scott α → Scott β) (hf : Continuous f) :
    OmegaCompletePartialOrder.Continuous' f 
Arguments: {α : Type u_1} {β : Type u_2} [OmegaCompletePartialOrder α] [OmegaCompletePartialOrder β] (f : Scott α → Scott β) (hf : Continuous f)
Goal: OmegaCompletePartialOrder.Continuous' f
-- continuous_of_scottContinuous
theorem continuous_of_scottContinuous {α β} [OmegaCompletePartialOrder α]
    [OmegaCompletePartialOrder β] (f : Scott α → Scott β)
    (hf : OmegaCompletePartialOrder.Continuous' f) : Continuous f 
Arguments: {α : Type u_1} {β : Type u_2} [OmegaCompletePartialOrder α] [OmegaCompletePartialOrder β] (f : Scott α → Scott β) (hf : OmegaCompletePartialOrder.Continuous' f)
Goal: Continuous f
-- RestrictGenTopology.isOpen_of_forall_induced
structure RestrictGenTopology (S : Set (Set X)) : Prop where
  isOpen_of_forall_induced (u : Set X) : (∀ s ∈ S, IsOpen ((↑) ⁻¹' u : Set s)) → IsOpen u
Arguments: {X : Type u_1} [tX : TopologicalSpace X] {S : Set (Set X)} (self : RestrictGenTopology S) (u : Set X)
Goal: (∀ s ∈ S, IsOpen (Subtype.val ⁻¹' u)) → IsOpen u
-- Inducing.induced
@[mk_iff]
structure Inducing (f : X → Y) : Prop where
    induced : tX = tY.induced f
Arguments: {X : Type u_1} {Y : Type u_2} [tX : TopologicalSpace X] [tY : TopologicalSpace Y] {f : X → Y} (self : Inducing f)
Goal: tX = TopologicalSpace.induced f tY
-- inducing_iff
@[mk_iff]
structure Inducing (f : X → Y) : Prop where
    induced : tX = tY.induced f
Arguments: {X : Type u_1} {Y : Type u_2} [tX : TopologicalSpace X] [tY : TopologicalSpace Y] (f : X → Y)
Goal: Inducing f ↔ tX = TopologicalSpace.induced f tY
-- embedding_iff
@[mk_iff]
structure Embedding [TopologicalSpace X] [TopologicalSpace Y] (f : X → Y) extends
  Inducing f : Prop where
    inj : Function.Injective f
Arguments: {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] (f : X → Y)
Goal: Embedding f ↔ Inducing f ∧ Function.Injective f
-- Embedding.inj
@[mk_iff]
structure Embedding [TopologicalSpace X] [TopologicalSpace Y] (f : X → Y) extends
  Inducing f : Prop where
    inj : Function.Injective f
Arguments: {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] [TopologicalSpace Y] {f : X → Y} (self : Embedding f)
Goal: Function.Injective f
-- OpenEmbedding.isOpen_range
@[mk_iff]
structure OpenEmbedding (f : X → Y) extends Embedding f : Prop where
    isOpen_range : IsOpen <| range f
Arguments: {X : Type u_1} {Y : Type u_2} [tX : TopologicalSpace X] [tY : TopologicalSpace Y] {f : X → Y} (self : OpenEmbedding f)
Goal: IsOpen (Set.range f)
-- openEmbedding_iff
@[mk_iff]
structure OpenEmbedding (f : X → Y) extends Embedding f : Prop where
    isOpen_range : IsOpen <| range f
Arguments: {X : Type u_1} {Y : Type u_2} [tX : TopologicalSpace X] [tY : TopologicalSpace Y] (f : X → Y)
Goal: OpenEmbedding f ↔ Embedding f ∧ IsOpen (Set.range f)
-- ClosedEmbedding.isClosed_range
@[mk_iff]
structure ClosedEmbedding (f : X → Y) extends Embedding f : Prop where
    isClosed_range : IsClosed <| range f
Arguments: {X : Type u_1} {Y : Type u_2} [tX : TopologicalSpace X] [tY : TopologicalSpace Y] {f : X → Y} (self : ClosedEmbedding f)
Goal: IsClosed (Set.range f)
-- closedEmbedding_iff
@[mk_iff]
structure ClosedEmbedding (f : X → Y) extends Embedding f : Prop where
    isClosed_range : IsClosed <| range f
Arguments: {X : Type u_1} {Y : Type u_2} [tX : TopologicalSpace X] [tY : TopologicalSpace Y] (f : X → Y)
Goal: ClosedEmbedding f ↔ Embedding f ∧ IsClosed (Set.range f)
-- embedding_toPullbackDiag
theorem embedding_toPullbackDiag (f : X → Y) : Embedding (toPullbackDiag f) 
Arguments: {X : Type u_1} {Y : Sort u_2} [TopologicalSpace X] (f : X → Y)
Goal: Embedding (toPullbackDiag f)
-- Continuous.mapPullback
lemma Continuous.mapPullback {X₁ X₂ Y₁ Y₂ Z₁ Z₂}
    [TopologicalSpace X₁] [TopologicalSpace X₂] [TopologicalSpace Z₁] [TopologicalSpace Z₂]
    {f₁ : X₁ → Y₁} {g₁ : Z₁ → Y₁} {f₂ : X₂ → Y₂} {g₂ : Z₂ → Y₂}
    {mapX : X₁ → X₂} (contX : Continuous mapX) {mapY : Y₁ → Y₂}
    {mapZ : Z₁ → Z₂} (contZ : Continuous mapZ)
    {commX : f₂ ∘ mapX = mapY ∘ f₁} {commZ : g₂ ∘ mapZ = mapY ∘ g₁} :
    Continuous (Function.mapPullback mapX mapY mapZ commX commZ) 
Arguments: {X₁ : Type u_1} {X₂ : Type u_2} {Y₁ : Sort u_3} {Y₂ : Sort u_4} {Z₁ : Type u_5} {Z₂ : Type u_6} [TopologicalSpace X₁] [TopologicalSpace X₂] [TopologicalSpace Z₁] [TopologicalSpace Z₂] {f₁ : X₁ → Y₁} {g₁ : Z₁ → Y₁} {f₂ : X₂ → Y₂} {g₂ : Z₂ → Y₂} {mapX : X₁ → X₂} (contX : Continuous mapX) {mapY : Y₁ → Y₂} {mapZ : Z₁ → Z₂} (contZ : Continuous mapZ) {commX : f₂ ∘ mapX = mapY ∘ f₁} {commZ : g₂ ∘ mapZ = mapY ∘ g₁}
Goal: Continuous (Function.mapPullback mapX mapY mapZ commX commZ)
-- t2space_iff_isSeparatedMap
lemma t2space_iff_isSeparatedMap (y : Y) : T2Space X ↔ IsSeparatedMap fun _ : X ↦ y 
Arguments: {X : Type u_1} {Y : Sort u_2} [TopologicalSpace X] (y : Y)
Goal: T2Space X ↔ IsSeparatedMap fun x => y
-- T2Space.isSeparatedMap
lemma T2Space.isSeparatedMap [T2Space X] (f : X → Y) : IsSeparatedMap f 
Arguments: {X : Type u_1} {Y : Sort u_2} [TopologicalSpace X] [T2Space X] (f : X → Y)
Goal: IsSeparatedMap f
-- Function.Injective.isSeparatedMap
lemma Function.Injective.isSeparatedMap {f : X → Y} (inj : f.Injective) : IsSeparatedMap f 
Arguments: {X : Type u_1} {Y : Sort u_2} [TopologicalSpace X] {f : X → Y} (inj : Function.Injective f)
Goal: IsSeparatedMap f
-- isSeparatedMap_iff_disjoint_nhds
lemma isSeparatedMap_iff_disjoint_nhds {f : X → Y} : IsSeparatedMap f ↔
    ∀ x₁ x₂, f x₁ = f x₂ → x₁ ≠ x₂ → Disjoint (𝓝 x₁) (𝓝 x₂) 
Arguments: {X : Type u_1} {Y : Sort u_2} [TopologicalSpace X] {f : X → Y}
Goal: IsSeparatedMap f ↔ ∀ (x₁ x₂ : X), f x₁ = f x₂ → x₁ ≠ x₂ → Disjoint (𝓝 x₁) (𝓝 x₂)
-- isSeparatedMap_iff_nhds
lemma isSeparatedMap_iff_nhds {f : X → Y} : IsSeparatedMap f ↔
    ∀ x₁ x₂, f x₁ = f x₂ → x₁ ≠ x₂ → ∃ s₁ ∈ 𝓝 x₁, ∃ s₂ ∈ 𝓝 x₂, Disjoint s₁ s₂ 
Arguments: {X : Type u_1} {Y : Sort u_2} [TopologicalSpace X] {f : X → Y}
Goal: IsSeparatedMap f ↔ ∀ (x₁ x₂ : X), f x₁ = f x₂ → x₁ ≠ x₂ → ∃ s₁ ∈ 𝓝 x₁, ∃ s₂ ∈ 𝓝 x₂, Disjoint s₁ s₂
-- isSeparatedMap_iff_isClosed_diagonal
theorem isSeparatedMap_iff_isClosed_diagonal {f : X → Y} :
    IsSeparatedMap f ↔ IsClosed f.pullbackDiagonal 
Arguments: {X : Type u_1} {Y : Sort u_2} [TopologicalSpace X] {f : X → Y}
Goal: IsSeparatedMap f ↔ IsClosed (Function.pullbackDiagonal f)
-- isSeparatedMap_iff_closedEmbedding
theorem isSeparatedMap_iff_closedEmbedding {f : X → Y} :
    IsSeparatedMap f ↔ ClosedEmbedding (toPullbackDiag f) 
Arguments: {X : Type u_1} {Y : Sort u_2} [TopologicalSpace X] {f : X → Y}
Goal: IsSeparatedMap f ↔ ClosedEmbedding (toPullbackDiag f)
-- isSeparatedMap_iff_isClosedMap
theorem isSeparatedMap_iff_isClosedMap {f : X → Y} :
    IsSeparatedMap f ↔ IsClosedMap (toPullbackDiag f) 
Arguments: {X : Type u_1} {Y : Sort u_2} [TopologicalSpace X] {f : X → Y}
Goal: IsSeparatedMap f ↔ IsClosedMap (toPullbackDiag f)
-- IsSeparatedMap.pullback
theorem IsSeparatedMap.pullback {f : X → Y} (sep : IsSeparatedMap f) (g : A → Y) :
    IsSeparatedMap (@snd X Y A f g) 
Arguments: {X : Type u_1} {Y : Sort u_2} {A : Type u_3} [TopologicalSpace X] [TopologicalSpace A] {f : X → Y} (sep : IsSeparatedMap f) (g : A → Y)
Goal: IsSeparatedMap Function.Pullback.snd
-- IsSeparatedMap.comp_left
theorem IsSeparatedMap.comp_left {f : X → Y} (sep : IsSeparatedMap f) {g : Y → A}
    (inj : g.Injective) : IsSeparatedMap (g ∘ f) 
Arguments: {X : Type u_1} {Y : Sort u_2} {A : Type u_3} [TopologicalSpace X] {f : X → Y} (sep : IsSeparatedMap f) {g : Y → A} (inj : Function.Injective g)
Goal: IsSeparatedMap (g ∘ f)
-- IsSeparatedMap.comp_right
theorem IsSeparatedMap.comp_right {f : X → Y} (sep : IsSeparatedMap f) {g : A → X}
    (cont : Continuous g) (inj : g.Injective) : IsSeparatedMap (f ∘ g) 
Arguments: {X : Type u_1} {Y : Sort u_2} {A : Type u_3} [TopologicalSpace X] [TopologicalSpace A] {f : X → Y} (sep : IsSeparatedMap f) {g : A → X} (cont : Continuous g) (inj : Function.Injective g)
Goal: IsSeparatedMap (f ∘ g)
-- Function.Injective.IsLocallyInjective
lemma Function.Injective.IsLocallyInjective {f : X → Y} (inj : f.Injective) :
    IsLocallyInjective f 
Arguments: {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] {f : X → Y} (inj : Function.Injective f)
Goal: IsLocallyInjective f
-- isLocallyInjective_iff_nhds
lemma isLocallyInjective_iff_nhds {f : X → Y} :
    IsLocallyInjective f ↔ ∀ x : X, ∃ U ∈ 𝓝 x, U.InjOn f 
Arguments: {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] {f : X → Y}
Goal: IsLocallyInjective f ↔ ∀ (x : X), ∃ U ∈ 𝓝 x, Set.InjOn f U
-- isLocallyInjective_iff_isOpen_diagonal
theorem isLocallyInjective_iff_isOpen_diagonal {f : X → Y} :
    IsLocallyInjective f ↔ IsOpen f.pullbackDiagonal 
Arguments: {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] {f : X → Y}
Goal: IsLocallyInjective f ↔ IsOpen (Function.pullbackDiagonal f)
-- IsLocallyInjective_iff_openEmbedding
theorem IsLocallyInjective_iff_openEmbedding {f : X → Y} :
    IsLocallyInjective f ↔ OpenEmbedding (toPullbackDiag f) 
Arguments: {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] {f : X → Y}
Goal: IsLocallyInjective f ↔ OpenEmbedding (toPullbackDiag f)
-- isLocallyInjective_iff_isOpenMap
theorem isLocallyInjective_iff_isOpenMap {f : X → Y} :
    IsLocallyInjective f ↔ IsOpenMap (toPullbackDiag f) 
Arguments: {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] {f : X → Y}
Goal: IsLocallyInjective f ↔ IsOpenMap (toPullbackDiag f)
-- discreteTopology_iff_locallyInjective
theorem discreteTopology_iff_locallyInjective (y : Y) :
    DiscreteTopology X ↔ IsLocallyInjective fun _ : X ↦ y 
Arguments: {X : Type u_1} {Y : Type u_2} [TopologicalSpace X] (y : Y)
Goal: DiscreteTopology X ↔ IsLocallyInjective fun x => y
-- IsLocallyInjective.comp_left
theorem IsLocallyInjective.comp_left {f : X → Y} (hf : IsLocallyInjective f) {g : Y → A}
    (hg : g.Injective) : IsLocallyInjective (g ∘ f) 
Arguments: {X : Type u_1} {Y : Type u_2} {A : Type u_3} [TopologicalSpace X] {f : X → Y} (hf : IsLocallyInjective f) {g : Y → A} (hg : Function.Injective g)
Goal: IsLocallyInjective (g ∘ f)
-- IsLocallyInjective.comp_right
theorem IsLocallyInjective.comp_right {f : X → Y} (hf : IsLocallyInjective f) {g : A → X}
    (cont : Continuous g) (hg : g.Injective) : IsLocallyInjective (f ∘ g) 
Arguments: {X : Type u_1} {Y : Type u_2} {A : Type u_3} [TopologicalSpace X] [TopologicalSpace A] {f : X → Y} (hf : IsLocallyInjective f) {g : A → X} (cont : Continuous g) (hg : Function.Injective g)
Goal: IsLocallyInjective (f ∘ g)
-- IsSeparatedMap.isClosed_eqLocus
theorem IsSeparatedMap.isClosed_eqLocus (he : f ∘ g₁ = f ∘ g₂) : IsClosed {a | g₁ a = g₂ a} 
Arguments: {X : Type u_3} {Y : Type u_2} {A : Type u_1} [TopologicalSpace X] [TopologicalSpace A] {f : X → Y} (sep : IsSeparatedMap f) {g₁ g₂ : A → X} (h₁ : Continuous g₁) (h₂ : Continuous g₂) (he : f ∘ g₁ = f ∘ g₂)
Goal: IsClosed {a | g₁ a = g₂ a}
-- IsLocallyInjective.isOpen_eqLocus
theorem IsLocallyInjective.isOpen_eqLocus (he : f ∘ g₁ = f ∘ g₂) : IsOpen {a | g₁ a = g₂ a} 
Arguments: {X : Type u_3} {Y : Type u_2} {A : Type u_1} [TopologicalSpace X] [TopologicalSpace A] {f : X → Y} (inj : IsLocallyInjective f) {g₁ g₂ : A → X} (h₁ : Continuous g₁) (h₂ : Continuous g₂) (he : f ∘ g₁ = f ∘ g₂)
Goal: IsOpen {a | g₁ a = g₂ a}
-- IsSeparatedMap.eq_of_comp_eq
theorem eq_of_comp_eq [PreconnectedSpace A] (h₁ : Continuous g₁) (h₂ : Continuous g₂)
    (he : p ∘ g₁ = p ∘ g₂) (a : A) (ha : g₁ a = g₂ a) : g₁ = g₂ 
Arguments: {X : Type u_3} {E : Type u_1} {A : Type u_2} [TopologicalSpace E] [TopologicalSpace A] {p : E → X} (sep : IsSeparatedMap p) (inj : IsLocallyInjective p) {g₁ g₂ : A → E} [PreconnectedSpace A] (h₁ : Continuous g₁) (h₂ : Continuous g₂) (he : p ∘ g₁ = p ∘ g₂) (a : A) (ha : g₁ a = g₂ a)
Goal: g₁ = g₂
-- IsSeparatedMap.eqOn_of_comp_eqOn
theorem eqOn_of_comp_eqOn (h₁ : ContinuousOn g₁ s) (h₂ : ContinuousOn g₂ s)
    (he : s.EqOn (p ∘ g₁) (p ∘ g₂)) {a : A} (has : a ∈ s) (ha : g₁ a = g₂ a) : s.EqOn g₁ g₂ 
Arguments: {X : Type u_3} {E : Type u_1} {A : Type u_2} [TopologicalSpace E] [TopologicalSpace A] {p : E → X} (sep : IsSeparatedMap p) (inj : IsLocallyInjective p) {s : Set A} (hs : IsPreconnected s) {g₁ g₂ : A → E} (h₁ : ContinuousOn g₁ s) (h₂ : ContinuousOn g₂ s) (he : Set.EqOn (p ∘ g₁) (p ∘ g₂) s) {a : A} (has : a ∈ s) (ha : g₁ a = g₂ a)
Goal: Set.EqOn g₁ g₂ s
-- IsSeparatedMap.const_of_comp
theorem const_of_comp [PreconnectedSpace A] (cont : Continuous g)
    (he : ∀ a a', p (g a) = p (g a')) (a a') : g a = g a' 
Arguments: {X : Type u_3} {E : Type u_1} {A : Type u_2} [TopologicalSpace E] [TopologicalSpace A] {p : E → X} (sep : IsSeparatedMap p) (inj : IsLocallyInjective p) {g : A → E} [PreconnectedSpace A] (cont : Continuous g) (he : ∀ (a a' : A), p (g a) = p (g a')) (a a' : A)
Goal: g a = g a'
-- IsSeparatedMap.constOn_of_comp
theorem constOn_of_comp (cont : ContinuousOn g s)
    (he : ∀ a ∈ s, ∀ a' ∈ s, p (g a) = p (g a'))
    {a a'} (ha : a ∈ s) (ha' : a' ∈ s) : g a = g a' 
Arguments: {X : Type u_3} {E : Type u_1} {A : Type u_2} [TopologicalSpace E] [TopologicalSpace A] {p : E → X} (sep : IsSeparatedMap p) (inj : IsLocallyInjective p) {s : Set A} (hs : IsPreconnected s) {g : A → E} (cont : ContinuousOn g s) (he : ∀ a ∈ s, ∀ a' ∈ s, p (g a) = p (g a')) {a a' : A} (ha : a ∈ s) (ha' : a' ∈ s)
Goal: g a = g a'
-- AlexandrovDiscrete.isOpen_sInter
class AlexandrovDiscrete (α : Type*) [TopologicalSpace α] : Prop where
    protected isOpen_sInter : ∀ S : Set (Set α), (∀ s ∈ S, IsOpen s) → IsOpen (⋂₀ S)
Arguments: {α : Type u_1} [TopologicalSpace α] [self : AlexandrovDiscrete α] (S : Set (Set α))
Goal: (∀ s ∈ S, IsOpen s) → IsOpen (⋂₀ S)
-- isOpen_sInter
lemma isOpen_sInter : (∀ s ∈ S, IsOpen s) → IsOpen (⋂₀ S) 
Arguments: {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] {S : Set (Set α)}
Goal: (∀ s ∈ S, IsOpen s) → IsOpen (⋂₀ S)
-- isOpen_iInter
lemma isOpen_iInter (hf : ∀ i, IsOpen (f i)) : IsOpen (⋂ i, f i) 
Arguments: {ι : Sort u_1} {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] {f : ι → Set α} (hf : ∀ (i : ι), IsOpen (f i))
Goal: IsOpen (⋂ i, f i)
-- isOpen_iInter₂
lemma isOpen_iInter₂ {f : ∀ i, κ i → Set α} (hf : ∀ i j, IsOpen (f i j)) :
    IsOpen (⋂ i, ⋂ j, f i j) 
Arguments: {ι : Sort u_1} {κ : ι → Sort u_2} {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] {f : (i : ι) → κ i → Set α} (hf : ∀ (i : ι) (j : κ i), IsOpen (f i j))
Goal: IsOpen (⋂ i, ⋂ j, f i j)
-- isClosed_sUnion
lemma isClosed_sUnion (hS : ∀ s ∈ S, IsClosed s) : IsClosed (⋃₀ S) 
Arguments: {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] {S : Set (Set α)} (hS : ∀ s ∈ S, IsClosed s)
Goal: IsClosed (⋃₀ S)
-- isClosed_iUnion
lemma isClosed_iUnion (hf : ∀ i, IsClosed (f i)) : IsClosed (⋃ i, f i) 
Arguments: {ι : Sort u_1} {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] {f : ι → Set α} (hf : ∀ (i : ι), IsClosed (f i))
Goal: IsClosed (⋃ i, f i)
-- isClosed_iUnion₂
lemma isClosed_iUnion₂ {f : ∀ i, κ i → Set α} (hf : ∀ i j, IsClosed (f i j)) :
    IsClosed (⋃ i, ⋃ j, f i j) 
Arguments: {ι : Sort u_1} {κ : ι → Sort u_2} {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] {f : (i : ι) → κ i → Set α} (hf : ∀ (i : ι) (j : κ i), IsClosed (f i j))
Goal: IsClosed (⋃ i, ⋃ j, f i j)
-- isClopen_sInter
lemma isClopen_sInter (hS : ∀ s ∈ S, IsClopen s) : IsClopen (⋂₀ S) 
Arguments: {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] {S : Set (Set α)} (hS : ∀ s ∈ S, IsClopen s)
Goal: IsClopen (⋂₀ S)
-- isClopen_iInter
lemma isClopen_iInter (hf : ∀ i, IsClopen (f i)) : IsClopen (⋂ i, f i) 
Arguments: {ι : Sort u_1} {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] {f : ι → Set α} (hf : ∀ (i : ι), IsClopen (f i))
Goal: IsClopen (⋂ i, f i)
-- isClopen_iInter₂
lemma isClopen_iInter₂ {f : ∀ i, κ i → Set α} (hf : ∀ i j, IsClopen (f i j)) :
    IsClopen (⋂ i, ⋂ j, f i j) 
Arguments: {ι : Sort u_1} {κ : ι → Sort u_2} {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] {f : (i : ι) → κ i → Set α} (hf : ∀ (i : ι) (j : κ i), IsClopen (f i j))
Goal: IsClopen (⋂ i, ⋂ j, f i j)
-- isClopen_sUnion
lemma isClopen_sUnion (hS : ∀ s ∈ S, IsClopen s) : IsClopen (⋃₀ S) 
Arguments: {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] {S : Set (Set α)} (hS : ∀ s ∈ S, IsClopen s)
Goal: IsClopen (⋃₀ S)
-- isClopen_iUnion
lemma isClopen_iUnion (hf : ∀ i, IsClopen (f i)) : IsClopen (⋃ i, f i) 
Arguments: {ι : Sort u_1} {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] {f : ι → Set α} (hf : ∀ (i : ι), IsClopen (f i))
Goal: IsClopen (⋃ i, f i)
-- isClopen_iUnion₂
lemma isClopen_iUnion₂ {f : ∀ i, κ i → Set α} (hf : ∀ i j, IsClopen (f i j)) :
    IsClopen (⋃ i, ⋃ j, f i j) 
Arguments: {ι : Sort u_1} {κ : ι → Sort u_2} {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] {f : (i : ι) → κ i → Set α} (hf : ∀ (i : ι) (j : κ i), IsClopen (f i j))
Goal: IsClopen (⋃ i, ⋃ j, f i j)
-- interior_iInter
lemma interior_iInter (f : ι → Set α) : interior (⋂ i, f i) = ⋂ i, interior (f i) 
Arguments: {ι : Sort u_1} {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] (f : ι → Set α)
Goal: interior (⋂ i, f i) = ⋂ i, interior (f i)
-- interior_sInter
lemma interior_sInter (S : Set (Set α)) : interior (⋂₀ S) = ⋂ s ∈ S, interior s 
Arguments: {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] (S : Set (Set α))
Goal: interior (⋂₀ S) = ⋂ s ∈ S, interior s
-- closure_iUnion
lemma closure_iUnion (f : ι → Set α) : closure (⋃ i, f i) = ⋃ i, closure (f i) 
Arguments: {ι : Sort u_1} {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] (f : ι → Set α)
Goal: closure (⋃ i, f i) = ⋃ i, closure (f i)
-- closure_sUnion
lemma closure_sUnion (S : Set (Set α)) : closure (⋃₀ S) = ⋃ s ∈ S, closure s 
Arguments: {α : Type u_3} [TopologicalSpace α] [AlexandrovDiscrete α] (S : Set (Set α))
Goal: closure (⋃₀ S) = ⋃ s ∈ S, closure s
-- exterior_singleton_eq_ker_nhds
lemma exterior_singleton_eq_ker_nhds (a : α) : exterior {a} = (𝓝 a).ker 
Arguments: {α : Type u_3} [TopologicalSpace α] (a : α)
Goal: exterior {a} = (𝓝 a).ker
-- exterior_def
lemma exterior_def (s : Set α) : exterior s = ⋂₀ {t : Set α | IsOpen t ∧ s ⊆ t} 
Arguments: {α : Type u_3} [TopologicalSpace α] (s : Set α)
Goal: exterior s = ⋂₀ {t | IsOpen t ∧ s ⊆ t}
-- mem_exterior
lemma mem_exterior : a ∈ exterior s ↔ ∀ U, IsOpen U → s ⊆ U → a ∈ U 
Arguments: {α : Type u_3} [TopologicalSpace α] {s : Set α} {a : α}
Goal: a ∈ exterior s ↔ ∀ (U : Set α), IsOpen U → s ⊆ U → a ∈ U
-- subset_exterior_iff
lemma subset_exterior_iff : s ⊆ exterior t ↔ ∀ U, IsOpen U → t ⊆ U → s ⊆ U 
Arguments: {α : Type u_3} [TopologicalSpace α] {s t : Set α}
Goal: s ⊆ exterior t ↔ ∀ (U : Set α), IsOpen U → t ⊆ U → s ⊆ U
-- subset_exterior
lemma subset_exterior : s ⊆ exterior s 
Arguments: {α : Type u_3} [TopologicalSpace α] {s : Set α}
Goal: s ⊆ exterior s
-- exterior_minimal
lemma exterior_minimal (h₁ : s ⊆ t) (h₂ : IsOpen t) : exterior s ⊆ t 
Arguments: {α : Type u_3} [TopologicalSpace α] {s t : Set α} (h₁ : s ⊆ t) (h₂ : IsOpen t)
Goal: exterior s ⊆ t
-- IsOpen.exterior_eq
lemma IsOpen.exterior_eq (h : IsOpen s) : exterior s = s 
Arguments: {α : Type u_3} [TopologicalSpace α] {s : Set α} (h : IsOpen s)
Goal: exterior s = s