ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Function.comp_id
@[simp, mfld_simps]
theorem comp_id (f : α → β) : f ∘ id = f 
Arguments: {α : Sort u₁} {β : Sort u₂} (f : α → β)
Goal: f ∘ id = f
-- Function.comp.assoc
theorem comp.assoc (f : φ → δ) (g : β → φ) (h : α → β) : (f ∘ g) ∘ h = f ∘ g ∘ h 
Arguments: {α : Sort u₁} {β : Sort u₂} {φ : Sort u₃} {δ : Sort u₄} (f : φ → δ) (g : β → φ) (h : α → β)
Goal: (f ∘ g) ∘ h = f ∘ g ∘ h
-- Function.const_comp
@[simp] theorem const_comp {γ : Sort*} (f : α → β) (c : γ) : const β c ∘ f = const α c 
Arguments: {α : Sort u₁} {β : Sort u₂} {γ : Sort u_1} (f : α → β) (c : γ)
Goal: Function.const β c ∘ f = Function.const α c
-- Function.comp_const
@[simp] theorem comp_const (f : β → φ) (b : β) : f ∘ const α b = const α (f b) 
Arguments: {α : Sort u₁} {β : Sort u₂} {φ : Sort u₃} (f : β → φ) (b : β)
Goal: f ∘ Function.const α b = Function.const α (f b)
-- Function.Injective.comp
theorem Injective.comp {g : β → φ} {f : α → β} (hg : Injective g) (hf : Injective f) :
    Injective (g ∘ f) 
Arguments: {α : Sort u₁} {β : Sort u₂} {φ : Sort u₃} {g : β → φ} {f : α → β} (hg : Function.Injective g) (hf : Function.Injective f)
Goal: Function.Injective (g ∘ f)
-- Function.Surjective.comp
theorem Surjective.comp {g : β → φ} {f : α → β} (hg : Surjective g) (hf : Surjective f) :
    Surjective (g ∘ f) 
Arguments: {α : Sort u₁} {β : Sort u₂} {φ : Sort u₃} {g : β → φ} {f : α → β} (hg : Function.Surjective g) (hf : Function.Surjective f)
Goal: Function.Surjective (g ∘ f)
-- Function.Bijective.comp
theorem Bijective.comp {g : β → φ} {f : α → β} : Bijective g → Bijective f → Bijective (g ∘ f)
  
Arguments: {α : Sort u₁} {β : Sort u₂} {φ : Sort u₃} {g : β → φ} {f : α → β}
Goal: Function.Bijective g → Function.Bijective f → Function.Bijective (g ∘ f)
-- Function.LeftInverse.injective
theorem LeftInverse.injective {g : β → α} {f : α → β} : LeftInverse g f → Injective f 
Arguments: {α : Sort u₁} {β : Sort u₂} {g : β → α} {f : α → β}
Goal: Function.LeftInverse g f → Function.Injective f
-- Function.HasLeftInverse.injective
theorem HasLeftInverse.injective {f : α → β} : HasLeftInverse f → Injective f 
Arguments: {α : Sort u₁} {β : Sort u₂} {f : α → β}
Goal: Function.HasLeftInverse f → Function.Injective f
-- Function.rightInverse_of_injective_of_leftInverse
theorem rightInverse_of_injective_of_leftInverse {f : α → β} {g : β → α} (injf : Injective f)
    (lfg : LeftInverse f g) : RightInverse f g 
Arguments: {α : Sort u₁} {β : Sort u₂} {f : α → β} {g : β → α} (injf : Function.Injective f) (lfg : Function.LeftInverse f g)
Goal: Function.RightInverse f g
-- Function.RightInverse.surjective
theorem RightInverse.surjective {f : α → β} {g : β → α} (h : RightInverse g f) : Surjective f 
Arguments: {α : Sort u₁} {β : Sort u₂} {f : α → β} {g : β → α} (h : Function.RightInverse g f)
Goal: Function.Surjective f
-- Function.HasRightInverse.surjective
theorem HasRightInverse.surjective {f : α → β} : HasRightInverse f → Surjective f
  
Arguments: {α : Sort u₁} {β : Sort u₂} {f : α → β}
Goal: Function.HasRightInverse f → Function.Surjective f
-- Function.leftInverse_of_surjective_of_rightInverse
theorem leftInverse_of_surjective_of_rightInverse {f : α → β} {g : β → α} (surjf : Surjective f)
    (rfg : RightInverse f g) : LeftInverse f g 
Arguments: {α : Sort u₁} {β : Sort u₂} {f : α → β} {g : β → α} (surjf : Function.Surjective f) (rfg : Function.RightInverse f g)
Goal: Function.LeftInverse f g
-- Function.injective_id
theorem injective_id : Injective (@id α) 
Arguments: {α : Sort u₁}
Goal: Function.Injective id
-- Function.surjective_id
theorem surjective_id : Surjective (@id α) 
Arguments: {α : Sort u₁}
Goal: Function.Surjective id
-- Function.bijective_id
theorem bijective_id : Bijective (@id α) 
Arguments: {α : Sort u₁}
Goal: Function.Bijective id
-- Function.curry_uncurry
@[simp]
theorem curry_uncurry (f : α → β → φ) : curry (uncurry f) = f 
Arguments: {α : Type u₁} {β : Type u₂} {φ : Type u₃} (f : α → β → φ)
Goal: Function.curry (Function.uncurry f) = f
-- Function.uncurry_curry
@[simp]
theorem uncurry_curry (f : α × β → φ) : uncurry (curry f) = f 
Arguments: {α : Type u₁} {β : Type u₂} {φ : Type u₃} (f : α × β → φ)
Goal: Function.uncurry (Function.curry f) = f
-- Function.LeftInverse.id
protected theorem LeftInverse.id {g : β → α} {f : α → β} (h : LeftInverse g f) : g ∘ f = id 
Arguments: {α : Type u₁} {β : Type u₂} {g : β → α} {f : α → β} (h : Function.LeftInverse g f)
Goal: g ∘ f = id
-- Function.RightInverse.id
protected theorem RightInverse.id {g : β → α} {f : α → β} (h : RightInverse g f) : f ∘ g = id 
Arguments: {α : Type u₁} {β : Type u₂} {g : β → α} {f : α → β} (h : Function.RightInverse g f)
Goal: f ∘ g = id
-- PartialEquiv.map_target'
structure PartialEquiv (α : Type*) (β : Type*) where
    toFun : α → β
    invFun : β → α
    source : Set α
    target : Set β
    map_source' : ∀ ⦃x⦄, x ∈ source → toFun x ∈ target
    map_target' : ∀ ⦃x⦄, x ∈ target → invFun x ∈ source
    left_inv' : ∀ ⦃x⦄, x ∈ source → invFun (toFun x) = x
    right_inv' : ∀ ⦃x⦄, x ∈ target → toFun (invFun x) = x
Arguments: {α : Type u_5} {β : Type u_6} (self : PartialEquiv α β) ⦃x : β⦄
Goal: x ∈ self.target → self.invFun x ∈ self.source
-- PartialEquiv.right_inv'
structure PartialEquiv (α : Type*) (β : Type*) where
    toFun : α → β
    invFun : β → α
    source : Set α
    target : Set β
    map_source' : ∀ ⦃x⦄, x ∈ source → toFun x ∈ target
    map_target' : ∀ ⦃x⦄, x ∈ target → invFun x ∈ source
    left_inv' : ∀ ⦃x⦄, x ∈ source → invFun (toFun x) = x
    right_inv' : ∀ ⦃x⦄, x ∈ target → toFun (invFun x) = x
Arguments: {α : Type u_5} {β : Type u_6} (self : PartialEquiv α β) ⦃x : β⦄
Goal: x ∈ self.target → ↑self (self.invFun x) = x
-- PartialEquiv.left_inv'
structure PartialEquiv (α : Type*) (β : Type*) where
    toFun : α → β
    invFun : β → α
    source : Set α
    target : Set β
    map_source' : ∀ ⦃x⦄, x ∈ source → toFun x ∈ target
    map_target' : ∀ ⦃x⦄, x ∈ target → invFun x ∈ source
    left_inv' : ∀ ⦃x⦄, x ∈ source → invFun (toFun x) = x
    right_inv' : ∀ ⦃x⦄, x ∈ target → toFun (invFun x) = x
Arguments: {α : Type u_5} {β : Type u_6} (self : PartialEquiv α β) ⦃x : α⦄
Goal: x ∈ self.source → self.invFun (↑self x) = x
-- PartialEquiv.map_source'
structure PartialEquiv (α : Type*) (β : Type*) where
    toFun : α → β
    invFun : β → α
    source : Set α
    target : Set β
    map_source' : ∀ ⦃x⦄, x ∈ source → toFun x ∈ target
    map_target' : ∀ ⦃x⦄, x ∈ target → invFun x ∈ source
    left_inv' : ∀ ⦃x⦄, x ∈ source → invFun (toFun x) = x
    right_inv' : ∀ ⦃x⦄, x ∈ target → toFun (invFun x) = x
Arguments: {α : Type u_5} {β : Type u_6} (self : PartialEquiv α β) ⦃x : α⦄
Goal: x ∈ self.source → ↑self x ∈ self.target
-- PartialEquiv.coe_symm_mk
@[simp, mfld_simps]
theorem coe_symm_mk (f : α → β) (g s t ml mr il ir) :
    ((PartialEquiv.mk f g s t ml mr il ir).symm : β → α) = g 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (g : β → α) (s : Set α) (t : Set β) (ml : ∀ ⦃x : α⦄, x ∈ s → f x ∈ t) (mr : ∀ ⦃x : β⦄, x ∈ t → g x ∈ s) (il : ∀ ⦃x : α⦄, x ∈ s → g (f x) = x) (ir : ∀ ⦃x : β⦄, x ∈ t → f (g x) = x)
Goal: ↑{ toFun := f, invFun := g, source := s, target := t, map_source' := ml, map_target' := mr, left_inv' := il,
        right_inv' := ir }.symm =
  g
-- PartialEquiv.invFun_as_coe
@[simp, mfld_simps]
theorem invFun_as_coe : e.invFun = e.symm 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: e.invFun = ↑e.symm
-- PartialEquiv.map_source
@[simp, mfld_simps]
theorem map_source {x : α} (h : x ∈ e.source) : e x ∈ e.target 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) {x : α} (h : x ∈ e.source)
Goal: ↑e x ∈ e.target
-- PartialEquiv.map_source''
lemma map_source'' : e '' e.source ⊆ e.target 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: ↑e '' e.source ⊆ e.target
-- PartialEquiv.map_target
@[simp, mfld_simps]
theorem map_target {x : β} (h : x ∈ e.target) : e.symm x ∈ e.source 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) {x : β} (h : x ∈ e.target)
Goal: ↑e.symm x ∈ e.source
-- PartialEquiv.left_inv
@[simp, mfld_simps]
theorem left_inv {x : α} (h : x ∈ e.source) : e.symm (e x) = x 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) {x : α} (h : x ∈ e.source)
Goal: ↑e.symm (↑e x) = x
-- PartialEquiv.right_inv
@[simp, mfld_simps]
theorem right_inv {x : β} (h : x ∈ e.target) : e (e.symm x) = x 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) {x : β} (h : x ∈ e.target)
Goal: ↑e (↑e.symm x) = x
-- PartialEquiv.eq_symm_apply
theorem eq_symm_apply {x : α} {y : β} (hx : x ∈ e.source) (hy : y ∈ e.target) :
    x = e.symm y ↔ e x = y 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) {x : α} {y : β} (hx : x ∈ e.source) (hy : y ∈ e.target)
Goal: x = ↑e.symm y ↔ ↑e x = y
-- PartialEquiv.mapsTo
protected theorem mapsTo : MapsTo e e.source e.target 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: Set.MapsTo (↑e) e.source e.target
-- PartialEquiv.symm_mapsTo
theorem symm_mapsTo : MapsTo e.symm e.target e.source 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: Set.MapsTo (↑e.symm) e.target e.source
-- PartialEquiv.leftInvOn
protected theorem leftInvOn : LeftInvOn e.symm e e.source 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: Set.LeftInvOn (↑e.symm) (↑e) e.source
-- PartialEquiv.rightInvOn
protected theorem rightInvOn : RightInvOn e.symm e e.target 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: Set.RightInvOn (↑e.symm) (↑e) e.target
-- PartialEquiv.invOn
protected theorem invOn : InvOn e.symm e e.source e.target 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: Set.InvOn (↑e.symm) (↑e) e.source e.target
-- PartialEquiv.injOn
protected theorem injOn : InjOn e e.source 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: Set.InjOn (↑e) e.source
-- PartialEquiv.bijOn
protected theorem bijOn : BijOn e e.source e.target 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: Set.BijOn (↑e) e.source e.target
-- PartialEquiv.surjOn
protected theorem surjOn : SurjOn e e.source e.target 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: Set.SurjOn (↑e) e.source e.target
-- Equiv.toPartialEquivOfImageEq_target
@[simps (config := .asFn)]
def _root_.Equiv.toPartialEquivOfImageEq (e : α ≃ β) (s : Set α) (t : Set β) (h : e '' s = t) :
    PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α) (t : Set β) (h : ⇑e '' s = t)
Goal: (e.toPartialEquivOfImageEq s t h).target = t
-- Equiv.toPartialEquivOfImageEq_symm_apply
@[simps (config := .asFn)]
def _root_.Equiv.toPartialEquivOfImageEq (e : α ≃ β) (s : Set α) (t : Set β) (h : e '' s = t) :
    PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α) (t : Set β) (h : ⇑e '' s = t)
Goal: ↑(e.toPartialEquivOfImageEq s t h).symm = ⇑e.symm
-- Equiv.toPartialEquivOfImageEq_apply
@[simps (config := .asFn)]
def _root_.Equiv.toPartialEquivOfImageEq (e : α ≃ β) (s : Set α) (t : Set β) (h : e '' s = t) :
    PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α) (t : Set β) (h : ⇑e '' s = t)
Goal: ↑(e.toPartialEquivOfImageEq s t h) = ⇑e
-- Equiv.toPartialEquivOfImageEq_source
@[simps (config := .asFn)]
def _root_.Equiv.toPartialEquivOfImageEq (e : α ≃ β) (s : Set α) (t : Set β) (h : e '' s = t) :
    PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α) (t : Set β) (h : ⇑e '' s = t)
Goal: (e.toPartialEquivOfImageEq s t h).source = s
-- Equiv.toPartialEquiv_symm_apply
@[simps! (config := mfld_cfg)]
def _root_.Equiv.toPartialEquiv (e : α ≃ β) : PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β)
Goal: ↑e.toPartialEquiv.symm = ⇑e.symm
-- Equiv.toPartialEquiv_source
@[simps! (config := mfld_cfg)]
def _root_.Equiv.toPartialEquiv (e : α ≃ β) : PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β)
Goal: e.toPartialEquiv.source = Set.univ
-- Equiv.toPartialEquiv_target
@[simps! (config := mfld_cfg)]
def _root_.Equiv.toPartialEquiv (e : α ≃ β) : PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β)
Goal: e.toPartialEquiv.target = Set.univ
-- Equiv.toPartialEquiv_apply
@[simps! (config := mfld_cfg)]
def _root_.Equiv.toPartialEquiv (e : α ≃ β) : PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β)
Goal: ↑e.toPartialEquiv = ⇑e
-- PartialEquiv.copy_source
@[simps (config := .asFn)]
def copy (e : PartialEquiv α β) (f : α → β) (hf : ⇑e = f) (g : β → α) (hg : ⇑e.symm = g) (s : Set α)
    (hs : e.source = s) (t : Set β) (ht : e.target = t) :
    PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) (f : α → β) (hf : ↑e = f) (g : β → α) (hg : ↑e.symm = g) (s : Set α) (hs : e.source = s) (t : Set β) (ht : e.target = t)
Goal: (e.copy f hf g hg s hs t ht).source = s
-- PartialEquiv.copy_symm_apply
@[simps (config := .asFn)]
def copy (e : PartialEquiv α β) (f : α → β) (hf : ⇑e = f) (g : β → α) (hg : ⇑e.symm = g) (s : Set α)
    (hs : e.source = s) (t : Set β) (ht : e.target = t) :
    PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) (f : α → β) (hf : ↑e = f) (g : β → α) (hg : ↑e.symm = g) (s : Set α) (hs : e.source = s) (t : Set β) (ht : e.target = t)
Goal: ↑(e.copy f hf g hg s hs t ht).symm = g
-- PartialEquiv.copy_target
@[simps (config := .asFn)]
def copy (e : PartialEquiv α β) (f : α → β) (hf : ⇑e = f) (g : β → α) (hg : ⇑e.symm = g) (s : Set α)
    (hs : e.source = s) (t : Set β) (ht : e.target = t) :
    PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) (f : α → β) (hf : ↑e = f) (g : β → α) (hg : ↑e.symm = g) (s : Set α) (hs : e.source = s) (t : Set β) (ht : e.target = t)
Goal: (e.copy f hf g hg s hs t ht).target = t
-- PartialEquiv.copy_apply
@[simps (config := .asFn)]
def copy (e : PartialEquiv α β) (f : α → β) (hf : ⇑e = f) (g : β → α) (hg : ⇑e.symm = g) (s : Set α)
    (hs : e.source = s) (t : Set β) (ht : e.target = t) :
    PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) (f : α → β) (hf : ↑e = f) (g : β → α) (hg : ↑e.symm = g) (s : Set α) (hs : e.source = s) (t : Set β) (ht : e.target = t)
Goal: ↑(e.copy f hf g hg s hs t ht) = f
-- PartialEquiv.copy_eq
theorem copy_eq (e : PartialEquiv α β) (f : α → β) (hf : ⇑e = f) (g : β → α) (hg : ⇑e.symm = g)
    (s : Set α) (hs : e.source = s) (t : Set β) (ht : e.target = t) :
    e.copy f hf g hg s hs t ht = e 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) (f : α → β) (hf : ↑e = f) (g : β → α) (hg : ↑e.symm = g) (s : Set α) (hs : e.source = s) (t : Set β) (ht : e.target = t)
Goal: e.copy f hf g hg s hs t ht = e
-- PartialEquiv.symm_source
@[simp, mfld_simps]
theorem symm_source : e.symm.source = e.target 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: e.symm.source = e.target
-- PartialEquiv.symm_target
@[simp, mfld_simps]
theorem symm_target : e.symm.target = e.source 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: e.symm.target = e.source
-- PartialEquiv.symm_symm
@[simp, mfld_simps]
theorem symm_symm : e.symm.symm = e 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: e.symm.symm = e
-- PartialEquiv.symm_bijective
theorem symm_bijective :
    Function.Bijective (PartialEquiv.symm : PartialEquiv α β → PartialEquiv β α) 
Arguments: {α : Type u_1} {β : Type u_2}
Goal: Function.Bijective PartialEquiv.symm
-- PartialEquiv.image_source_eq_target
theorem image_source_eq_target : e '' e.source = e.target 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: ↑e '' e.source = e.target
-- PartialEquiv.forall_mem_target
theorem forall_mem_target {p : β → Prop} : (∀ y ∈ e.target, p y) ↔ ∀ x ∈ e.source, p (e x) 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) {p : β → Prop}
Goal: (∀ y ∈ e.target, p y) ↔ ∀ x ∈ e.source, p (↑e x)
-- PartialEquiv.exists_mem_target
theorem exists_mem_target {p : β → Prop} : (∃ y ∈ e.target, p y) ↔ ∃ x ∈ e.source, p (e x) 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) {p : β → Prop}
Goal: (∃ y ∈ e.target, p y) ↔ ∃ x ∈ e.source, p (↑e x)
-- PartialEquiv.IsImage.apply_mem_iff
theorem apply_mem_iff (h : e.IsImage s t) (hx : x ∈ e.source) : e x ∈ t ↔ x ∈ s 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} {x : α} (h : e.IsImage s t) (hx : x ∈ e.source)
Goal: ↑e x ∈ t ↔ x ∈ s
-- PartialEquiv.IsImage.symm_apply_mem_iff
theorem symm_apply_mem_iff (h : e.IsImage s t) : ∀ ⦃y⦄, y ∈ e.target → (e.symm y ∈ s ↔ y ∈ t) 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : e.IsImage s t) ⦃y : β⦄
Goal: y ∈ e.target → (↑e.symm y ∈ s ↔ y ∈ t)
-- PartialEquiv.IsImage.symm
protected theorem symm (h : e.IsImage s t) : e.symm.IsImage t s 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : e.IsImage s t)
Goal: e.symm.IsImage t s
-- PartialEquiv.IsImage.symm_iff
@[simp]
theorem symm_iff : e.symm.IsImage t s ↔ e.IsImage s t 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β}
Goal: e.symm.IsImage t s ↔ e.IsImage s t
-- PartialEquiv.IsImage.mapsTo
protected theorem mapsTo (h : e.IsImage s t) : MapsTo e (e.source ∩ s) (e.target ∩ t) 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : e.IsImage s t)
Goal: Set.MapsTo (↑e) (e.source ∩ s) (e.target ∩ t)
-- PartialEquiv.IsImage.symm_mapsTo
theorem symm_mapsTo (h : e.IsImage s t) : MapsTo e.symm (e.target ∩ t) (e.source ∩ s) 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : e.IsImage s t)
Goal: Set.MapsTo (↑e.symm) (e.target ∩ t) (e.source ∩ s)
-- PartialEquiv.IsImage.restr_apply
@[simps (config := .asFn)]
def restr (h : e.IsImage s t) : PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : e.IsImage s t)
Goal: ↑h.restr = ↑e
-- PartialEquiv.IsImage.restr_symm_apply
@[simps (config := .asFn)]
def restr (h : e.IsImage s t) : PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : e.IsImage s t)
Goal: ↑h.restr.symm = ↑e.symm
-- PartialEquiv.IsImage.restr_target
@[simps (config := .asFn)]
def restr (h : e.IsImage s t) : PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : e.IsImage s t)
Goal: h.restr.target = e.target ∩ t
-- PartialEquiv.IsImage.restr_source
@[simps (config := .asFn)]
def restr (h : e.IsImage s t) : PartialEquiv α β 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : e.IsImage s t)
Goal: h.restr.source = e.source ∩ s
-- PartialEquiv.IsImage.image_eq
theorem image_eq (h : e.IsImage s t) : e '' (e.source ∩ s) = e.target ∩ t 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : e.IsImage s t)
Goal: ↑e '' (e.source ∩ s) = e.target ∩ t
-- PartialEquiv.IsImage.symm_image_eq
theorem symm_image_eq (h : e.IsImage s t) : e.symm '' (e.target ∩ t) = e.source ∩ s 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : e.IsImage s t)
Goal: ↑e.symm '' (e.target ∩ t) = e.source ∩ s
-- PartialEquiv.IsImage.iff_preimage_eq
theorem iff_preimage_eq : e.IsImage s t ↔ e.source ∩ e ⁻¹' t = e.source ∩ s 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β}
Goal: e.IsImage s t ↔ e.source ∩ ↑e ⁻¹' t = e.source ∩ s
-- PartialEquiv.IsImage.iff_symm_preimage_eq
theorem iff_symm_preimage_eq : e.IsImage s t ↔ e.target ∩ e.symm ⁻¹' s = e.target ∩ t 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β}
Goal: e.IsImage s t ↔ e.target ∩ ↑e.symm ⁻¹' s = e.target ∩ t
-- PartialEquiv.IsImage.of_image_eq
theorem of_image_eq (h : e '' (e.source ∩ s) = e.target ∩ t) : e.IsImage s t 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : ↑e '' (e.source ∩ s) = e.target ∩ t)
Goal: e.IsImage s t
-- PartialEquiv.IsImage.of_symm_image_eq
theorem of_symm_image_eq (h : e.symm '' (e.target ∩ t) = e.source ∩ s) : e.IsImage s t 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : ↑e.symm '' (e.target ∩ t) = e.source ∩ s)
Goal: e.IsImage s t
-- PartialEquiv.IsImage.compl
protected theorem compl (h : e.IsImage s t) : e.IsImage sᶜ tᶜ 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} (h : e.IsImage s t)
Goal: e.IsImage sᶜ tᶜ
-- PartialEquiv.IsImage.inter
protected theorem inter {s' t'} (h : e.IsImage s t) (h' : e.IsImage s' t') :
    e.IsImage (s ∩ s') (t ∩ t') 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} {s' : Set α} {t' : Set β} (h : e.IsImage s t) (h' : e.IsImage s' t')
Goal: e.IsImage (s ∩ s') (t ∩ t')
-- PartialEquiv.IsImage.union
protected theorem union {s' t'} (h : e.IsImage s t) (h' : e.IsImage s' t') :
    e.IsImage (s ∪ s') (t ∪ t') 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} {s' : Set α} {t' : Set β} (h : e.IsImage s t) (h' : e.IsImage s' t')
Goal: e.IsImage (s ∪ s') (t ∪ t')
-- PartialEquiv.IsImage.diff
protected theorem diff {s' t'} (h : e.IsImage s t) (h' : e.IsImage s' t') :
    e.IsImage (s \ s') (t \ t') 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} {s' : Set α} {t' : Set β} (h : e.IsImage s t) (h' : e.IsImage s' t')
Goal: e.IsImage (s \ s') (t \ t')
-- PartialEquiv.IsImage.leftInvOn_piecewise
theorem leftInvOn_piecewise {e' : PartialEquiv α β} [∀ i, Decidable (i ∈ s)]
    [∀ i, Decidable (i ∈ t)] (h : e.IsImage s t) (h' : e'.IsImage s t) :
    LeftInvOn (t.piecewise e.symm e'.symm) (s.piecewise e e') (s.ite e.source e'.source) 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} {e' : PartialEquiv α β} [(i : α) → Decidable (i ∈ s)] [(i : β) → Decidable (i ∈ t)] (h : e.IsImage s t) (h' : e'.IsImage s t)
Goal: Set.LeftInvOn (t.piecewise ↑e.symm ↑e'.symm) (s.piecewise ↑e ↑e') (s.ite e.source e'.source)
-- PartialEquiv.IsImage.inter_eq_of_inter_eq_of_eqOn
theorem inter_eq_of_inter_eq_of_eqOn {e' : PartialEquiv α β} (h : e.IsImage s t)
    (h' : e'.IsImage s t) (hs : e.source ∩ s = e'.source ∩ s) (heq : EqOn e e' (e.source ∩ s)) :
    e.target ∩ t = e'.target ∩ t 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} {e' : PartialEquiv α β} (h : e.IsImage s t) (h' : e'.IsImage s t) (hs : e.source ∩ s = e'.source ∩ s) (heq : Set.EqOn (↑e) (↑e') (e.source ∩ s))
Goal: e.target ∩ t = e'.target ∩ t
-- PartialEquiv.IsImage.symm_eq_on_of_inter_eq_of_eqOn
theorem symm_eq_on_of_inter_eq_of_eqOn {e' : PartialEquiv α β} (h : e.IsImage s t)
    (hs : e.source ∩ s = e'.source ∩ s) (heq : EqOn e e' (e.source ∩ s)) :
    EqOn e.symm e'.symm (e.target ∩ t) 
Arguments: {α : Type u_1} {β : Type u_2} {e : PartialEquiv α β} {s : Set α} {t : Set β} {e' : PartialEquiv α β} (h : e.IsImage s t) (hs : e.source ∩ s = e'.source ∩ s) (heq : Set.EqOn (↑e) (↑e') (e.source ∩ s))
Goal: Set.EqOn (↑e.symm) (↑e'.symm) (e.target ∩ t)
-- PartialEquiv.isImage_source_target
theorem isImage_source_target : e.IsImage e.source e.target 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β)
Goal: e.IsImage e.source e.target
-- PartialEquiv.isImage_source_target_of_disjoint
theorem isImage_source_target_of_disjoint (e' : PartialEquiv α β) (hs : Disjoint e.source e'.source)
    (ht : Disjoint e.target e'.target) : e.IsImage e'.source e'.target 
Arguments: {α : Type u_1} {β : Type u_2} (e e' : PartialEquiv α β) (hs : Disjoint e.source e'.source) (ht : Disjoint e.target e'.target)
Goal: e.IsImage e'.source e'.target
-- PartialEquiv.image_source_inter_eq'
theorem image_source_inter_eq' (s : Set α) : e '' (e.source ∩ s) = e.target ∩ e.symm ⁻¹' s 
Arguments: {α : Type u_1} {β : Type u_2} (e : PartialEquiv α β) (s : Set α)
Goal: ↑e '' (e.source ∩ s) = e.target ∩ ↑e.symm ⁻¹' s