ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- PartialHomeomorph.restr_source'
theorem restr_source' (s : Set X) (hs : IsOpen s) : (e.restr s).source = e.source ∩ s 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : PartialHomeomorph X Y) (s : Set X) (hs : IsOpen s)
Goal: (e.restr s).source = e.source ∩ s
-- PartialHomeomorph.restr_toPartialEquiv'
theorem restr_toPartialEquiv' (s : Set X) (hs : IsOpen s) :
    (e.restr s).toPartialEquiv = e.toPartialEquiv.restr s 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : PartialHomeomorph X Y) (s : Set X) (hs : IsOpen s)
Goal: (e.restr s).toPartialEquiv = e.restr s
-- PartialHomeomorph.restr_eq_of_source_subset
theorem restr_eq_of_source_subset {e : PartialHomeomorph X Y} {s : Set X} (h : e.source ⊆ s) :
    e.restr s = e 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : PartialHomeomorph X Y} {s : Set X} (h : e.source ⊆ s)
Goal: e.restr s = e
-- PartialHomeomorph.restr_univ
@[simp, mfld_simps]
theorem restr_univ {e : PartialHomeomorph X Y} : e.restr univ = e 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e : PartialHomeomorph X Y}
Goal: e.restr Set.univ = e
-- PartialHomeomorph.restr_source_inter
theorem restr_source_inter (s : Set X) : e.restr (e.source ∩ s) = e.restr s 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : PartialHomeomorph X Y) (s : Set X)
Goal: e.restr (e.source ∩ s) = e.restr s
-- PartialHomeomorph.refl_source
@[simps! (config := mfld_cfg) apply, simps! (config := .lemmasOnly) source target]
protected def refl (X : Type*) [TopologicalSpace X] : PartialHomeomorph X X 
Arguments: (X : Type u_7) [TopologicalSpace X]
Goal: (PartialHomeomorph.refl X).source = Set.univ
-- PartialHomeomorph.refl_target
@[simps! (config := mfld_cfg) apply, simps! (config := .lemmasOnly) source target]
protected def refl (X : Type*) [TopologicalSpace X] : PartialHomeomorph X X 
Arguments: (X : Type u_7) [TopologicalSpace X]
Goal: (PartialHomeomorph.refl X).target = Set.univ
-- PartialHomeomorph.refl_apply
@[simps! (config := mfld_cfg) apply, simps! (config := .lemmasOnly) source target]
protected def refl (X : Type*) [TopologicalSpace X] : PartialHomeomorph X X 
Arguments: (X : Type u_7) [TopologicalSpace X]
Goal: ↑(PartialHomeomorph.refl X) = id
-- PartialHomeomorph.refl_partialEquiv
@[simp, mfld_simps]
theorem refl_partialEquiv : (PartialHomeomorph.refl X).toPartialEquiv = PartialEquiv.refl X 
Arguments: {X : Type u_1} [TopologicalSpace X]
Goal: (PartialHomeomorph.refl X).toPartialEquiv = PartialEquiv.refl X
-- PartialHomeomorph.refl_symm
@[simp, mfld_simps]
theorem refl_symm : (PartialHomeomorph.refl X).symm = PartialHomeomorph.refl X 
Arguments: {X : Type u_1} [TopologicalSpace X]
Goal: (PartialHomeomorph.refl X).symm = PartialHomeomorph.refl X
-- PartialHomeomorph.ofSet_source
@[simps! (config := mfld_cfg) apply, simps! (config := .lemmasOnly) source target]
def ofSet (s : Set X) (hs : IsOpen s) : PartialHomeomorph X X 
Arguments: {X : Type u_1} [TopologicalSpace X] (s : Set X) (hs : IsOpen s)
Goal: (PartialHomeomorph.ofSet s hs).source = s
-- PartialHomeomorph.ofSet_target
@[simps! (config := mfld_cfg) apply, simps! (config := .lemmasOnly) source target]
def ofSet (s : Set X) (hs : IsOpen s) : PartialHomeomorph X X 
Arguments: {X : Type u_1} [TopologicalSpace X] (s : Set X) (hs : IsOpen s)
Goal: (PartialHomeomorph.ofSet s hs).target = s
-- PartialHomeomorph.ofSet_apply
@[simps! (config := mfld_cfg) apply, simps! (config := .lemmasOnly) source target]
def ofSet (s : Set X) (hs : IsOpen s) : PartialHomeomorph X X 
Arguments: {X : Type u_1} [TopologicalSpace X] (s : Set X) (hs : IsOpen s)
Goal: ↑(PartialHomeomorph.ofSet s hs) = id
-- PartialHomeomorph.ofSet_toPartialEquiv
@[simp, mfld_simps]
theorem ofSet_toPartialEquiv : (ofSet s hs).toPartialEquiv = PartialEquiv.ofSet s 
Arguments: {X : Type u_1} [TopologicalSpace X] {s : Set X} (hs : IsOpen s)
Goal: (PartialHomeomorph.ofSet s hs).toPartialEquiv = PartialEquiv.ofSet s
-- PartialHomeomorph.ofSet_symm
@[simp, mfld_simps]
theorem ofSet_symm : (ofSet s hs).symm = ofSet s hs 
Arguments: {X : Type u_1} [TopologicalSpace X] {s : Set X} (hs : IsOpen s)
Goal: (PartialHomeomorph.ofSet s hs).symm = PartialHomeomorph.ofSet s hs
-- PartialHomeomorph.ofSet_univ_eq_refl
@[simp, mfld_simps]
theorem ofSet_univ_eq_refl : ofSet univ isOpen_univ = PartialHomeomorph.refl X 
Arguments: {X : Type u_1} [TopologicalSpace X]
Goal: PartialHomeomorph.ofSet Set.univ ⋯ = PartialHomeomorph.refl X
-- PartialHomeomorph.trans'_source
@[simps! apply symm_apply toPartialEquiv, simps! (config := .lemmasOnly) source target]
protected def trans' (h : e.target = e'.source) : PartialHomeomorph X Z 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z) (h : e.target = e'.source)
Goal: (e.trans' e' h).source = e.source
-- PartialHomeomorph.trans'_target
@[simps! apply symm_apply toPartialEquiv, simps! (config := .lemmasOnly) source target]
protected def trans' (h : e.target = e'.source) : PartialHomeomorph X Z 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z) (h : e.target = e'.source)
Goal: (e.trans' e' h).target = e'.target
-- PartialHomeomorph.trans'_apply
@[simps! apply symm_apply toPartialEquiv, simps! (config := .lemmasOnly) source target]
protected def trans' (h : e.target = e'.source) : PartialHomeomorph X Z 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z) (h : e.target = e'.source)
Goal: ∀ (a : X), ↑(e.trans' e' h) a = ↑e' (↑e a)
-- PartialHomeomorph.trans'_toPartialEquiv
@[simps! apply symm_apply toPartialEquiv, simps! (config := .lemmasOnly) source target]
protected def trans' (h : e.target = e'.source) : PartialHomeomorph X Z 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z) (h : e.target = e'.source)
Goal: (e.trans' e' h).toPartialEquiv = e.trans' e'.toPartialEquiv h
-- PartialHomeomorph.trans'_symm_apply
@[simps! apply symm_apply toPartialEquiv, simps! (config := .lemmasOnly) source target]
protected def trans' (h : e.target = e'.source) : PartialHomeomorph X Z 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z) (h : e.target = e'.source)
Goal: ∀ (a : Z), ↑(e.trans' e' h).symm a = ↑e.symm (↑e'.symm a)
-- PartialHomeomorph.trans_toPartialEquiv
@[simp, mfld_simps]
theorem trans_toPartialEquiv :
    (e.trans e').toPartialEquiv = e.toPartialEquiv.trans e'.toPartialEquiv 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z)
Goal: (e.trans e').toPartialEquiv = e.trans e'.toPartialEquiv
-- PartialHomeomorph.coe_trans
@[simp, mfld_simps]
theorem coe_trans : (e.trans e' : X → Z) = e' ∘ e 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z)
Goal: ↑(e.trans e') = ↑e' ∘ ↑e
-- PartialHomeomorph.coe_trans_symm
@[simp, mfld_simps]
theorem coe_trans_symm : ((e.trans e').symm : Z → X) = e.symm ∘ e'.symm 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z)
Goal: ↑(e.trans e').symm = ↑e.symm ∘ ↑e'.symm
-- PartialHomeomorph.trans_apply
theorem trans_apply {x : X} : (e.trans e') x = e' (e x) 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z) {x : X}
Goal: ↑(e.trans e') x = ↑e' (↑e x)
-- PartialHomeomorph.trans_symm_eq_symm_trans_symm
theorem trans_symm_eq_symm_trans_symm : (e.trans e').symm = e'.symm.trans e.symm 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z)
Goal: (e.trans e').symm = e'.symm.trans e.symm
-- PartialHomeomorph.trans_source
theorem trans_source : (e.trans e').source = e.source ∩ e ⁻¹' e'.source 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z)
Goal: (e.trans e').source = e.source ∩ ↑e ⁻¹' e'.source
-- PartialHomeomorph.trans_source'
theorem trans_source' : (e.trans e').source = e.source ∩ e ⁻¹' (e.target ∩ e'.source) 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z)
Goal: (e.trans e').source = e.source ∩ ↑e ⁻¹' (e.target ∩ e'.source)
-- PartialHomeomorph.trans_source''
theorem trans_source'' : (e.trans e').source = e.symm '' (e.target ∩ e'.source) 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z)
Goal: (e.trans e').source = ↑e.symm '' (e.target ∩ e'.source)
-- PartialHomeomorph.image_trans_source
theorem image_trans_source : e '' (e.trans e').source = e.target ∩ e'.source 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z)
Goal: ↑e '' (e.trans e').source = e.target ∩ e'.source
-- PartialHomeomorph.trans_target
theorem trans_target : (e.trans e').target = e'.target ∩ e'.symm ⁻¹' e.target 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z)
Goal: (e.trans e').target = e'.target ∩ ↑e'.symm ⁻¹' e.target
-- PartialHomeomorph.trans_target'
theorem trans_target' : (e.trans e').target = e'.target ∩ e'.symm ⁻¹' (e'.source ∩ e.target) 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z)
Goal: (e.trans e').target = e'.target ∩ ↑e'.symm ⁻¹' (e'.source ∩ e.target)
-- PartialHomeomorph.trans_target''
theorem trans_target'' : (e.trans e').target = e' '' (e'.source ∩ e.target) 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z)
Goal: (e.trans e').target = ↑e' '' (e'.source ∩ e.target)
-- PartialHomeomorph.inv_image_trans_target
theorem inv_image_trans_target : e'.symm '' (e.trans e').target = e'.source ∩ e.target 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z)
Goal: ↑e'.symm '' (e.trans e').target = e'.source ∩ e.target
-- PartialHomeomorph.trans_assoc
theorem trans_assoc (e'' : PartialHomeomorph Z Z') :
    (e.trans e').trans e'' = e.trans (e'.trans e'') 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} {Z' : Type u_6} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] [TopologicalSpace Z'] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z) (e'' : PartialHomeomorph Z Z')
Goal: (e.trans e').trans e'' = e.trans (e'.trans e'')
-- PartialHomeomorph.trans_refl
@[simp, mfld_simps]
theorem trans_refl : e.trans (PartialHomeomorph.refl Y) = e 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : PartialHomeomorph X Y)
Goal: e.trans (PartialHomeomorph.refl Y) = e
-- PartialHomeomorph.refl_trans
@[simp, mfld_simps]
theorem refl_trans : (PartialHomeomorph.refl X).trans e = e 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : PartialHomeomorph X Y)
Goal: (PartialHomeomorph.refl X).trans e = e
-- PartialHomeomorph.trans_ofSet
theorem trans_ofSet {s : Set Y} (hs : IsOpen s) : e.trans (ofSet s hs) = e.restr (e ⁻¹' s) 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : PartialHomeomorph X Y) {s : Set Y} (hs : IsOpen s)
Goal: e.trans (PartialHomeomorph.ofSet s hs) = e.restr (↑e ⁻¹' s)
-- PartialHomeomorph.trans_of_set'
theorem trans_of_set' {s : Set Y} (hs : IsOpen s) :
    e.trans (ofSet s hs) = e.restr (e.source ∩ e ⁻¹' s) 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : PartialHomeomorph X Y) {s : Set Y} (hs : IsOpen s)
Goal: e.trans (PartialHomeomorph.ofSet s hs) = e.restr (e.source ∩ ↑e ⁻¹' s)
-- PartialHomeomorph.ofSet_trans
theorem ofSet_trans {s : Set X} (hs : IsOpen s) : (ofSet s hs).trans e = e.restr s 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : PartialHomeomorph X Y) {s : Set X} (hs : IsOpen s)
Goal: (PartialHomeomorph.ofSet s hs).trans e = e.restr s
-- PartialHomeomorph.ofSet_trans'
theorem ofSet_trans' {s : Set X} (hs : IsOpen s) :
    (ofSet s hs).trans e = e.restr (e.source ∩ s) 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : PartialHomeomorph X Y) {s : Set X} (hs : IsOpen s)
Goal: (PartialHomeomorph.ofSet s hs).trans e = e.restr (e.source ∩ s)
-- PartialHomeomorph.ofSet_trans_ofSet
@[simp, mfld_simps]
theorem ofSet_trans_ofSet {s : Set X} (hs : IsOpen s) {s' : Set X} (hs' : IsOpen s') :
    (ofSet s hs).trans (ofSet s' hs') = ofSet (s ∩ s') (IsOpen.inter hs hs') 
Arguments: {X : Type u_1} [TopologicalSpace X] {s : Set X} (hs : IsOpen s) {s' : Set X} (hs' : IsOpen s')
Goal: (PartialHomeomorph.ofSet s hs).trans (PartialHomeomorph.ofSet s' hs') = PartialHomeomorph.ofSet (s ∩ s') ⋯
-- PartialHomeomorph.restr_trans
theorem restr_trans (s : Set X) : (e.restr s).trans e' = (e.trans e').restr s 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] (e : PartialHomeomorph X Y) (e' : PartialHomeomorph Y Z) (s : Set X)
Goal: (e.restr s).trans e' = (e.trans e').restr s
-- PartialHomeomorph.eqOnSource_iff
theorem eqOnSource_iff (e e' : PartialHomeomorph X Y) :
    EqOnSource e e' ↔ PartialEquiv.EqOnSource e.toPartialEquiv e'.toPartialEquiv 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e e' : PartialHomeomorph X Y)
Goal: e.EqOnSource e' ↔ e.EqOnSource e'.toPartialEquiv
-- PartialHomeomorph.eqOnSource_refl
theorem eqOnSource_refl : e ≈ e 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : PartialHomeomorph X Y)
Goal: e ≈ e
-- PartialHomeomorph.EqOnSource.symm'
theorem EqOnSource.symm' {e e' : PartialHomeomorph X Y} (h : e ≈ e') : e.symm ≈ e'.symm 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e e' : PartialHomeomorph X Y} (h : e ≈ e')
Goal: e.symm ≈ e'.symm
-- PartialHomeomorph.EqOnSource.source_eq
theorem EqOnSource.source_eq {e e' : PartialHomeomorph X Y} (h : e ≈ e') : e.source = e'.source 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e e' : PartialHomeomorph X Y} (h : e ≈ e')
Goal: e.source = e'.source
-- PartialHomeomorph.EqOnSource.target_eq
theorem EqOnSource.target_eq {e e' : PartialHomeomorph X Y} (h : e ≈ e') : e.target = e'.target 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e e' : PartialHomeomorph X Y} (h : e ≈ e')
Goal: e.target = e'.target
-- PartialHomeomorph.EqOnSource.eqOn
theorem EqOnSource.eqOn {e e' : PartialHomeomorph X Y} (h : e ≈ e') : EqOn e e' e.source 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e e' : PartialHomeomorph X Y} (h : e ≈ e')
Goal: Set.EqOn (↑e) (↑e') e.source
-- PartialHomeomorph.EqOnSource.symm_eqOn_target
theorem EqOnSource.symm_eqOn_target {e e' : PartialHomeomorph X Y} (h : e ≈ e') :
    EqOn e.symm e'.symm e.target 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e e' : PartialHomeomorph X Y} (h : e ≈ e')
Goal: Set.EqOn (↑e.symm) (↑e'.symm) e.target
-- PartialHomeomorph.EqOnSource.trans'
theorem EqOnSource.trans' {e e' : PartialHomeomorph X Y} {f f' : PartialHomeomorph Y Z}
    (he : e ≈ e') (hf : f ≈ f') : e.trans f ≈ e'.trans f' 
Arguments: {X : Type u_1} {Y : Type u_3} {Z : Type u_5} [TopologicalSpace X] [TopologicalSpace Y] [TopologicalSpace Z] {e e' : PartialHomeomorph X Y} {f f' : PartialHomeomorph Y Z} (he : e ≈ e') (hf : f ≈ f')
Goal: e.trans f ≈ e'.trans f'
-- PartialHomeomorph.EqOnSource.restr
theorem EqOnSource.restr {e e' : PartialHomeomorph X Y} (he : e ≈ e') (s : Set X) :
    e.restr s ≈ e'.restr s 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e e' : PartialHomeomorph X Y} (he : e ≈ e') (s : Set X)
Goal: e.restr s ≈ e'.restr s
-- PartialHomeomorph.Set.EqOn.restr_eqOn_source
theorem Set.EqOn.restr_eqOn_source {e e' : PartialHomeomorph X Y}
    (h : EqOn e e' (e.source ∩ e'.source)) : e.restr e'.source ≈ e'.restr e.source 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e e' : PartialHomeomorph X Y} (h : Set.EqOn (↑e) (↑e') (e.source ∩ e'.source))
Goal: e.restr e'.source ≈ e'.restr e.source
-- PartialHomeomorph.self_trans_symm
theorem self_trans_symm : e.trans e.symm ≈ PartialHomeomorph.ofSet e.source e.open_source 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : PartialHomeomorph X Y)
Goal: e.trans e.symm ≈ PartialHomeomorph.ofSet e.source ⋯
-- PartialHomeomorph.symm_trans_self
theorem symm_trans_self : e.symm.trans e ≈ PartialHomeomorph.ofSet e.target e.open_target 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] (e : PartialHomeomorph X Y)
Goal: e.symm.trans e ≈ PartialHomeomorph.ofSet e.target ⋯
-- PartialHomeomorph.eq_of_eqOnSource_univ
theorem eq_of_eqOnSource_univ {e e' : PartialHomeomorph X Y} (h : e ≈ e') (s : e.source = univ)
    (t : e.target = univ) : e = e' 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y] {e e' : PartialHomeomorph X Y} (h : e ≈ e') (s : e.source = Set.univ) (t : e.target = Set.univ)
Goal: e = e'
-- PartialHomeomorph.prod_source
@[simps! (config := mfld_cfg) toPartialEquiv apply,
  simps! (config := .lemmasOnly) source target symm_apply]
def prod (eX : PartialHomeomorph X X') (eY : PartialHomeomorph Y Y') :
    PartialHomeomorph (X × Y) (X' × Y') 
Arguments: {X : Type u_1} {X' : Type u_2} {Y : Type u_3} {Y' : Type u_4} [TopologicalSpace X] [TopologicalSpace X'] [TopologicalSpace Y] [TopologicalSpace Y'] (eX : PartialHomeomorph X X') (eY : PartialHomeomorph Y Y')
Goal: (eX.prod eY).source = eX.source ×ˢ eY.source
-- PartialHomeomorph.prod_symm_apply
@[simps! (config := mfld_cfg) toPartialEquiv apply,
  simps! (config := .lemmasOnly) source target symm_apply]
def prod (eX : PartialHomeomorph X X') (eY : PartialHomeomorph Y Y') :
    PartialHomeomorph (X × Y) (X' × Y') 
Arguments: {X : Type u_1} {X' : Type u_2} {Y : Type u_3} {Y' : Type u_4} [TopologicalSpace X] [TopologicalSpace X'] [TopologicalSpace Y] [TopologicalSpace Y'] (eX : PartialHomeomorph X X') (eY : PartialHomeomorph Y Y') (p : X' × Y')
Goal: ↑(eX.prod eY).symm p = (↑eX.symm p.1, ↑eY.symm p.2)
-- PartialHomeomorph.prod_target
@[simps! (config := mfld_cfg) toPartialEquiv apply,
  simps! (config := .lemmasOnly) source target symm_apply]
def prod (eX : PartialHomeomorph X X') (eY : PartialHomeomorph Y Y') :
    PartialHomeomorph (X × Y) (X' × Y') 
Arguments: {X : Type u_1} {X' : Type u_2} {Y : Type u_3} {Y' : Type u_4} [TopologicalSpace X] [TopologicalSpace X'] [TopologicalSpace Y] [TopologicalSpace Y'] (eX : PartialHomeomorph X X') (eY : PartialHomeomorph Y Y')
Goal: (eX.prod eY).target = eX.target ×ˢ eY.target
-- PartialHomeomorph.prod_apply
@[simps! (config := mfld_cfg) toPartialEquiv apply,
  simps! (config := .lemmasOnly) source target symm_apply]
def prod (eX : PartialHomeomorph X X') (eY : PartialHomeomorph Y Y') :
    PartialHomeomorph (X × Y) (X' × Y') 
Arguments: {X : Type u_1} {X' : Type u_2} {Y : Type u_3} {Y' : Type u_4} [TopologicalSpace X] [TopologicalSpace X'] [TopologicalSpace Y] [TopologicalSpace Y'] (eX : PartialHomeomorph X X') (eY : PartialHomeomorph Y Y')
Goal: ↑(eX.prod eY) = fun p => (↑eX p.1, ↑eY p.2)
-- PartialHomeomorph.prod_toPartialEquiv
@[simps! (config := mfld_cfg) toPartialEquiv apply,
  simps! (config := .lemmasOnly) source target symm_apply]
def prod (eX : PartialHomeomorph X X') (eY : PartialHomeomorph Y Y') :
    PartialHomeomorph (X × Y) (X' × Y') 
Arguments: {X : Type u_1} {X' : Type u_2} {Y : Type u_3} {Y' : Type u_4} [TopologicalSpace X] [TopologicalSpace X'] [TopologicalSpace Y] [TopologicalSpace Y'] (eX : PartialHomeomorph X X') (eY : PartialHomeomorph Y Y')
Goal: (eX.prod eY).toPartialEquiv = eX.prod eY.toPartialEquiv
-- PartialHomeomorph.prod_symm
@[simp, mfld_simps]
theorem prod_symm (eX : PartialHomeomorph X X') (eY : PartialHomeomorph Y Y') :
    (eX.prod eY).symm = eX.symm.prod eY.symm 
Arguments: {X : Type u_1} {X' : Type u_2} {Y : Type u_3} {Y' : Type u_4} [TopologicalSpace X] [TopologicalSpace X'] [TopologicalSpace Y] [TopologicalSpace Y'] (eX : PartialHomeomorph X X') (eY : PartialHomeomorph Y Y')
Goal: (eX.prod eY).symm = eX.symm.prod eY.symm
-- PartialHomeomorph.refl_prod_refl
@[simp]
theorem refl_prod_refl :
    (PartialHomeomorph.refl X).prod (PartialHomeomorph.refl Y) = PartialHomeomorph.refl (X × Y) 
Arguments: {X : Type u_1} {Y : Type u_3} [TopologicalSpace X] [TopologicalSpace Y]
Goal: (PartialHomeomorph.refl X).prod (PartialHomeomorph.refl Y) = PartialHomeomorph.refl (X × Y)
-- PartialHomeomorph.prod_trans
@[simp, mfld_simps]
theorem prod_trans (e : PartialHomeomorph X Y) (f : PartialHomeomorph Y Z)
    (e' : PartialHomeomorph X' Y') (f' : PartialHomeomorph Y' Z') :
    (e.prod e').trans (f.prod f') = (e.trans f).prod (e'.trans f') 
Arguments: {X : Type u_1} {X' : Type u_2} {Y : Type u_3} {Y' : Type u_4} {Z : Type u_5} {Z' : Type u_6} [TopologicalSpace X] [TopologicalSpace X'] [TopologicalSpace Y] [TopologicalSpace Y'] [TopologicalSpace Z] [TopologicalSpace Z'] (e : PartialHomeomorph X Y) (f : PartialHomeomorph Y Z) (e' : PartialHomeomorph X' Y') (f' : PartialHomeomorph Y' Z')
Goal: (e.prod e').trans (f.prod f') = (e.trans f).prod (e'.trans f')
-- PartialHomeomorph.prod_eq_prod_of_nonempty
theorem prod_eq_prod_of_nonempty {eX eX' : PartialHomeomorph X X'} {eY eY' : PartialHomeomorph Y Y'}
    (h : (eX.prod eY).source.Nonempty) : eX.prod eY = eX'.prod eY' ↔ eX = eX' ∧ eY = eY' 
Arguments: {X : Type u_1} {X' : Type u_2} {Y : Type u_3} {Y' : Type u_4} [TopologicalSpace X] [TopologicalSpace X'] [TopologicalSpace Y] [TopologicalSpace Y'] {eX eX' : PartialHomeomorph X X'} {eY eY' : PartialHomeomorph Y Y'} (h : (eX.prod eY).source.Nonempty)
Goal: eX.prod eY = eX'.prod eY' ↔ eX = eX' ∧ eY = eY'
-- PartialHomeomorph.prod_eq_prod_of_nonempty'
theorem prod_eq_prod_of_nonempty'
    {eX eX' : PartialHomeomorph X X'} {eY eY' : PartialHomeomorph Y Y'}
    (h : (eX'.prod eY').source.Nonempty) : eX.prod eY = eX'.prod eY' ↔ eX = eX' ∧ eY = eY' 
Arguments: {X : Type u_1} {X' : Type u_2} {Y : Type u_3} {Y' : Type u_4} [TopologicalSpace X] [TopologicalSpace X'] [TopologicalSpace Y] [TopologicalSpace Y'] {eX eX' : PartialHomeomorph X X'} {eY eY' : PartialHomeomorph Y Y'} (h : (eX'.prod eY').source.Nonempty)
Goal: eX.prod eY = eX'.prod eY' ↔ eX = eX' ∧ eY = eY'
-- PartialHomeomorph.pi_toPartialEquiv
@[simps toPartialEquiv]
def pi : PartialHomeomorph (∀ i, X i) (∀ i, Y i) 
Arguments: {ι : Type u_7} [Finite ι] {X : ι → Type u_8} {Y : ι → Type u_9} [(i : ι) → TopologicalSpace (X i)] [(i : ι) → TopologicalSpace (Y i)] (ei : (i : ι) → PartialHomeomorph (X i) (Y i))
Goal: (PartialHomeomorph.pi ei).toPartialEquiv = PartialEquiv.pi fun i => (ei i).toPartialEquiv