ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Set.InjOn.image_inter
lemma InjOn.image_inter {s t u : Set α} (hf : u.InjOn f) (hs : s ⊆ u) (ht : t ⊆ u) :
    f '' (s ∩ t) = f '' s ∩ f '' t 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {s t u : Set α} (hf : Set.InjOn f u) (hs : s ⊆ u) (ht : t ⊆ u)
Goal: f '' (s ∩ t) = f '' s ∩ f '' t
-- Set.InjOn.image
lemma InjOn.image (h : s.InjOn f) : s.powerset.InjOn (image f) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} (h : Set.InjOn f s)
Goal: Set.InjOn (Set.image f) (𝒫 s)
-- Set.InjOn.image_eq_image_iff
theorem InjOn.image_eq_image_iff (h : s.InjOn f) (h₁ : s₁ ⊆ s) (h₂ : s₂ ⊆ s) :
    f '' s₁ = f '' s₂ ↔ s₁ = s₂ 
Arguments: {α : Type u_1} {β : Type u_2} {s s₁ s₂ : Set α} {f : α → β} (h : Set.InjOn f s) (h₁ : s₁ ⊆ s) (h₂ : s₂ ⊆ s)
Goal: f '' s₁ = f '' s₂ ↔ s₁ = s₂
-- Set.InjOn.image_subset_image_iff
lemma InjOn.image_subset_image_iff (h : s.InjOn f) (h₁ : s₁ ⊆ s) (h₂ : s₂ ⊆ s) :
    f '' s₁ ⊆ f '' s₂ ↔ s₁ ⊆ s₂ 
Arguments: {α : Type u_1} {β : Type u_2} {s s₁ s₂ : Set α} {f : α → β} (h : Set.InjOn f s) (h₁ : s₁ ⊆ s) (h₂ : s₂ ⊆ s)
Goal: f '' s₁ ⊆ f '' s₂ ↔ s₁ ⊆ s₂
-- Set.InjOn.image_ssubset_image_iff
lemma InjOn.image_ssubset_image_iff (h : s.InjOn f) (h₁ : s₁ ⊆ s) (h₂ : s₂ ⊆ s) :
    f '' s₁ ⊂ f '' s₂ ↔ s₁ ⊂ s₂ 
Arguments: {α : Type u_1} {β : Type u_2} {s s₁ s₂ : Set α} {f : α → β} (h : Set.InjOn f s) (h₁ : s₁ ⊆ s) (h₂ : s₂ ⊆ s)
Goal: f '' s₁ ⊂ f '' s₂ ↔ s₁ ⊂ s₂
-- Disjoint.image
theorem _root_.Disjoint.image {s t u : Set α} {f : α → β} (h : Disjoint s t) (hf : u.InjOn f)
    (hs : s ⊆ u) (ht : t ⊆ u) : Disjoint (f '' s) (f '' t) 
Arguments: {α : Type u_1} {β : Type u_2} {s t u : Set α} {f : α → β} (h : Disjoint s t) (hf : Set.InjOn f u) (hs : s ⊆ u) (ht : t ⊆ u)
Goal: Disjoint (f '' s) (f '' t)
-- Set.InjOn.image_diff
lemma InjOn.image_diff {t : Set α} (h : s.InjOn f) : f '' (s \ t) = f '' s \ f '' (s ∩ t) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} {t : Set α} (h : Set.InjOn f s)
Goal: f '' (s \ t) = f '' s \ f '' (s ∩ t)
-- Set.InjOn.image_diff_subset
lemma InjOn.image_diff_subset {f : α → β} {t : Set α} (h : InjOn f s) (hst : t ⊆ s) :
    f '' (s \ t) = f '' s \ f '' t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} {t : Set α} (h : Set.InjOn f s) (hst : t ⊆ s)
Goal: f '' (s \ t) = f '' s \ f '' t
-- Set.InjOn.imageFactorization_injective
theorem InjOn.imageFactorization_injective (h : InjOn f s) :
    Injective (s.imageFactorization f) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} (h : Set.InjOn f s)
Goal: Function.Injective (Set.imageFactorization f s)
-- Set.imageFactorization_injective_iff
@[simp] theorem imageFactorization_injective_iff : Injective (s.imageFactorization f) ↔ InjOn f s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β}
Goal: Function.Injective (Set.imageFactorization f s) ↔ Set.InjOn f s
-- Set.graphOn_empty
@[simp] lemma graphOn_empty (f : α → β) : graphOn f ∅ = ∅ 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β)
Goal: Set.graphOn f ∅ = ∅
-- Set.graphOn_union
@[simp]
lemma graphOn_union (f : α → β) (s t : Set α) : graphOn f (s ∪ t) = graphOn f s ∪ graphOn f t 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (s t : Set α)
Goal: Set.graphOn f (s ∪ t) = Set.graphOn f s ∪ Set.graphOn f t
-- Set.graphOn_singleton
@[simp]
lemma graphOn_singleton (f : α → β) (x : α) : graphOn f {x} = {(x, f x)} 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (x : α)
Goal: Set.graphOn f {x} = {(x, f x)}
-- Set.graphOn_insert
@[simp]
lemma graphOn_insert (f : α → β) (x : α) (s : Set α) :
    graphOn f (insert x s) = insert (x, f x) (graphOn f s) 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (x : α) (s : Set α)
Goal: Set.graphOn f (insert x s) = insert (x, f x) (Set.graphOn f s)
-- Set.image_fst_graphOn
@[simp]
lemma image_fst_graphOn (f : α → β) (s : Set α) : Prod.fst '' graphOn f s = s 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (s : Set α)
Goal: Prod.fst '' Set.graphOn f s = s
-- Set.exists_eq_graphOn_image_fst
lemma exists_eq_graphOn_image_fst [Nonempty β] {s : Set (α × β)} :
    (∃ f : α → β, s = graphOn f (Prod.fst '' s)) ↔ InjOn Prod.fst s 
Arguments: {α : Type u_1} {β : Type u_2} [Nonempty β] {s : Set (α × β)}
Goal: (∃ f, s = Set.graphOn f (Prod.fst '' s)) ↔ Set.InjOn Prod.fst s
-- Set.exists_eq_graphOn
lemma exists_eq_graphOn [Nonempty β] {s : Set (α × β)} :
    (∃ f t, s = graphOn f t) ↔ InjOn Prod.fst s 
Arguments: {α : Type u_1} {β : Type u_2} [Nonempty β] {s : Set (α × β)}
Goal: (∃ f t, s = Set.graphOn f t) ↔ Set.InjOn Prod.fst s
-- Set.SurjOn.subset_range
theorem SurjOn.subset_range (h : SurjOn f s t) : t ⊆ range f 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h : Set.SurjOn f s t)
Goal: t ⊆ Set.range f
-- Set.surjOn_iff_exists_map_subtype
theorem surjOn_iff_exists_map_subtype :
    SurjOn f s t ↔ ∃ (t' : Set β) (g : s → t'), t ⊆ t' ∧ Surjective g ∧ ∀ x : s, f x = g x 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β}
Goal: Set.SurjOn f s t ↔ ∃ t' g, t ⊆ t' ∧ Function.Surjective g ∧ ∀ (x : ↑s), f ↑x = ↑(g x)
-- Set.surjOn_empty
theorem surjOn_empty (f : α → β) (s : Set α) : SurjOn f s ∅ 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (s : Set α)
Goal: Set.SurjOn f s ∅
-- Set.surjOn_empty_iff
@[simp] theorem surjOn_empty_iff : SurjOn f ∅ t ↔ t = ∅ 
Arguments: {α : Type u_1} {β : Type u_2} {t : Set β} {f : α → β}
Goal: Set.SurjOn f ∅ t ↔ t = ∅
-- Set.surjOn_singleton
@[simp] lemma surjOn_singleton : SurjOn f s {b} ↔ b ∈ f '' s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} {b : β}
Goal: Set.SurjOn f s {b} ↔ b ∈ f '' s
-- Set.surjOn_image
theorem surjOn_image (f : α → β) (s : Set α) : SurjOn f s (f '' s) 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (s : Set α)
Goal: Set.SurjOn f s (f '' s)
-- Set.SurjOn.comap_nonempty
theorem SurjOn.comap_nonempty (h : SurjOn f s t) (ht : t.Nonempty) : s.Nonempty 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h : Set.SurjOn f s t) (ht : t.Nonempty)
Goal: s.Nonempty
-- Set.SurjOn.congr
theorem SurjOn.congr (h : SurjOn f₁ s t) (H : EqOn f₁ f₂ s) : SurjOn f₂ s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f₁ f₂ : α → β} (h : Set.SurjOn f₁ s t) (H : Set.EqOn f₁ f₂ s)
Goal: Set.SurjOn f₂ s t
-- Set.EqOn.surjOn_iff
theorem EqOn.surjOn_iff (h : EqOn f₁ f₂ s) : SurjOn f₁ s t ↔ SurjOn f₂ s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f₁ f₂ : α → β} (h : Set.EqOn f₁ f₂ s)
Goal: Set.SurjOn f₁ s t ↔ Set.SurjOn f₂ s t
-- Set.SurjOn.mono
theorem SurjOn.mono (hs : s₁ ⊆ s₂) (ht : t₁ ⊆ t₂) (hf : SurjOn f s₁ t₂) : SurjOn f s₂ t₁ 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t₁ t₂ : Set β} {f : α → β} (hs : s₁ ⊆ s₂) (ht : t₁ ⊆ t₂) (hf : Set.SurjOn f s₁ t₂)
Goal: Set.SurjOn f s₂ t₁
-- Set.SurjOn.union
theorem SurjOn.union (h₁ : SurjOn f s t₁) (h₂ : SurjOn f s t₂) : SurjOn f s (t₁ ∪ t₂) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t₁ t₂ : Set β} {f : α → β} (h₁ : Set.SurjOn f s t₁) (h₂ : Set.SurjOn f s t₂)
Goal: Set.SurjOn f s (t₁ ∪ t₂)
-- Set.SurjOn.union_union
theorem SurjOn.union_union (h₁ : SurjOn f s₁ t₁) (h₂ : SurjOn f s₂ t₂) :
    SurjOn f (s₁ ∪ s₂) (t₁ ∪ t₂) 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t₁ t₂ : Set β} {f : α → β} (h₁ : Set.SurjOn f s₁ t₁) (h₂ : Set.SurjOn f s₂ t₂)
Goal: Set.SurjOn f (s₁ ∪ s₂) (t₁ ∪ t₂)
-- Set.SurjOn.inter_inter
theorem SurjOn.inter_inter (h₁ : SurjOn f s₁ t₁) (h₂ : SurjOn f s₂ t₂) (h : InjOn f (s₁ ∪ s₂)) :
    SurjOn f (s₁ ∩ s₂) (t₁ ∩ t₂) 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t₁ t₂ : Set β} {f : α → β} (h₁ : Set.SurjOn f s₁ t₁) (h₂ : Set.SurjOn f s₂ t₂) (h : Set.InjOn f (s₁ ∪ s₂))
Goal: Set.SurjOn f (s₁ ∩ s₂) (t₁ ∩ t₂)
-- Set.SurjOn.inter
theorem SurjOn.inter (h₁ : SurjOn f s₁ t) (h₂ : SurjOn f s₂ t) (h : InjOn f (s₁ ∪ s₂)) :
    SurjOn f (s₁ ∩ s₂) t 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t : Set β} {f : α → β} (h₁ : Set.SurjOn f s₁ t) (h₂ : Set.SurjOn f s₂ t) (h : Set.InjOn f (s₁ ∪ s₂))
Goal: Set.SurjOn f (s₁ ∩ s₂) t
-- Set.surjOn_id
lemma surjOn_id (s : Set α) : SurjOn id s s 
Arguments: {α : Type u_1} (s : Set α)
Goal: Set.SurjOn id s s
-- Set.SurjOn.comp
theorem SurjOn.comp (hg : SurjOn g t p) (hf : SurjOn f s t) : SurjOn (g ∘ f) s p 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} {p : Set γ} {f : α → β} {g : β → γ} (hg : Set.SurjOn g t p) (hf : Set.SurjOn f s t)
Goal: Set.SurjOn (g ∘ f) s p
-- Set.SurjOn.iterate
lemma SurjOn.iterate {f : α → α} {s : Set α} (h : SurjOn f s s) : ∀ n, SurjOn f^[n] s s
  
Arguments: {α : Type u_1} {f : α → α} {s : Set α} (h : Set.SurjOn f s s) (n : ℕ)
Goal: Set.SurjOn f^[n] s s
-- Set.SurjOn.comp_left
lemma SurjOn.comp_left (hf : SurjOn f s t) (g : β → γ) : SurjOn (g ∘ f) s (g '' t) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} {f : α → β} (hf : Set.SurjOn f s t) (g : β → γ)
Goal: Set.SurjOn (g ∘ f) s (g '' t)
-- Set.SurjOn.comp_right
lemma SurjOn.comp_right {s : Set β} {t : Set γ} (hf : Surjective f) (hg : SurjOn g s t) :
    SurjOn (g ∘ f) (f ⁻¹' s) t 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {f : α → β} {g : β → γ} {s : Set β} {t : Set γ} (hf : Function.Surjective f) (hg : Set.SurjOn g s t)
Goal: Set.SurjOn (g ∘ f) (f ⁻¹' s) t
-- Set.surjOn_of_subsingleton'
lemma surjOn_of_subsingleton' [Subsingleton β] (f : α → β) (h : t.Nonempty → s.Nonempty) :
    SurjOn f s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} [Subsingleton β] (f : α → β) (h : t.Nonempty → s.Nonempty)
Goal: Set.SurjOn f s t
-- Set.surjOn_of_subsingleton
lemma surjOn_of_subsingleton [Subsingleton α] (f : α → α) (s : Set α) : SurjOn f s s 
Arguments: {α : Type u_1} [Subsingleton α] (f : α → α) (s : Set α)
Goal: Set.SurjOn f s s
-- Set.surjective_iff_surjOn_univ
theorem surjective_iff_surjOn_univ : Surjective f ↔ SurjOn f univ univ 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β}
Goal: Function.Surjective f ↔ Set.SurjOn f Set.univ Set.univ
-- Set.surjOn_iff_surjective
theorem surjOn_iff_surjective : SurjOn f s univ ↔ Surjective (s.restrict f) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β}
Goal: Set.SurjOn f s Set.univ ↔ Function.Surjective (s.restrict f)
-- Set.MapsTo.restrict_surjective_iff
@[simp]
theorem MapsTo.restrict_surjective_iff (h : MapsTo f s t) :
    Surjective (MapsTo.restrict _ _ _ h) ↔ SurjOn f s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h : Set.MapsTo f s t)
Goal: Function.Surjective (Set.MapsTo.restrict f s t h) ↔ Set.SurjOn f s t
-- Set.SurjOn.image_eq_of_mapsTo
theorem SurjOn.image_eq_of_mapsTo (h₁ : SurjOn f s t) (h₂ : MapsTo f s t) : f '' s = t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h₁ : Set.SurjOn f s t) (h₂ : Set.MapsTo f s t)
Goal: f '' s = t
-- Set.image_eq_iff_surjOn_mapsTo
theorem image_eq_iff_surjOn_mapsTo : f '' s = t ↔ s.SurjOn f t ∧ s.MapsTo f t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β}
Goal: f '' s = t ↔ Set.SurjOn f s t ∧ Set.MapsTo f s t
-- Set.SurjOn.image_preimage
lemma SurjOn.image_preimage (h : Set.SurjOn f s t) (ht : t₁ ⊆ t) : f '' (f ⁻¹' t₁) = t₁ 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t t₁ : Set β} {f : α → β} (h : Set.SurjOn f s t) (ht : t₁ ⊆ t)
Goal: f '' (f ⁻¹' t₁) = t₁
-- Set.SurjOn.mapsTo_compl
theorem SurjOn.mapsTo_compl (h : SurjOn f s t) (h' : Injective f) : MapsTo f sᶜ tᶜ 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h : Set.SurjOn f s t) (h' : Function.Injective f)
Goal: Set.MapsTo f sᶜ tᶜ
-- Set.MapsTo.surjOn_compl
theorem MapsTo.surjOn_compl (h : MapsTo f s t) (h' : Surjective f) : SurjOn f sᶜ tᶜ 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h : Set.MapsTo f s t) (h' : Function.Surjective f)
Goal: Set.SurjOn f sᶜ tᶜ
-- Set.EqOn.cancel_right
theorem EqOn.cancel_right (hf : s.EqOn (g₁ ∘ f) (g₂ ∘ f)) (hf' : s.SurjOn f t) : t.EqOn g₁ g₂ 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} {f : α → β} {g₁ g₂ : β → γ} (hf : Set.EqOn (g₁ ∘ f) (g₂ ∘ f) s) (hf' : Set.SurjOn f s t)
Goal: Set.EqOn g₁ g₂ t
-- Set.SurjOn.cancel_right
theorem SurjOn.cancel_right (hf : s.SurjOn f t) (hf' : s.MapsTo f t) :
    s.EqOn (g₁ ∘ f) (g₂ ∘ f) ↔ t.EqOn g₁ g₂ 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} {f : α → β} {g₁ g₂ : β → γ} (hf : Set.SurjOn f s t) (hf' : Set.MapsTo f s t)
Goal: Set.EqOn (g₁ ∘ f) (g₂ ∘ f) s ↔ Set.EqOn g₁ g₂ t
-- Set.eqOn_comp_right_iff
theorem eqOn_comp_right_iff : s.EqOn (g₁ ∘ f) (g₂ ∘ f) ↔ (f '' s).EqOn g₁ g₂ 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {f : α → β} {g₁ g₂ : β → γ}
Goal: Set.EqOn (g₁ ∘ f) (g₂ ∘ f) s ↔ Set.EqOn g₁ g₂ (f '' s)
-- Set.SurjOn.forall
theorem SurjOn.forall {p : β → Prop} (hf : s.SurjOn f t) (hf' : s.MapsTo f t) :
    (∀ y ∈ t, p y) ↔ (∀ x ∈ s, p (f x)) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {p : β → Prop} (hf : Set.SurjOn f s t) (hf' : Set.MapsTo f s t)
Goal: (∀ y ∈ t, p y) ↔ ∀ x ∈ s, p (f x)
-- Set.BijOn.mapsTo
theorem BijOn.mapsTo (h : BijOn f s t) : MapsTo f s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h : Set.BijOn f s t)
Goal: Set.MapsTo f s t
-- Set.BijOn.injOn
theorem BijOn.injOn (h : BijOn f s t) : InjOn f s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h : Set.BijOn f s t)
Goal: Set.InjOn f s
-- Set.BijOn.surjOn
theorem BijOn.surjOn (h : BijOn f s t) : SurjOn f s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h : Set.BijOn f s t)
Goal: Set.SurjOn f s t
-- Set.BijOn.mk
theorem BijOn.mk (h₁ : MapsTo f s t) (h₂ : InjOn f s) (h₃ : SurjOn f s t) : BijOn f s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h₁ : Set.MapsTo f s t) (h₂ : Set.InjOn f s) (h₃ : Set.SurjOn f s t)
Goal: Set.BijOn f s t
-- Set.bijOn_empty
theorem bijOn_empty (f : α → β) : BijOn f ∅ ∅ 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β)
Goal: Set.BijOn f ∅ ∅
-- Set.bijOn_empty_iff_left
@[simp] theorem bijOn_empty_iff_left : BijOn f s ∅ ↔ s = ∅ 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β}
Goal: Set.BijOn f s ∅ ↔ s = ∅
-- Set.bijOn_empty_iff_right
@[simp] theorem bijOn_empty_iff_right : BijOn f ∅ t ↔ t = ∅ 
Arguments: {α : Type u_1} {β : Type u_2} {t : Set β} {f : α → β}
Goal: Set.BijOn f ∅ t ↔ t = ∅
-- Set.bijOn_singleton
@[simp] lemma bijOn_singleton : BijOn f {a} {b} ↔ f a = b 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {a : α} {b : β}
Goal: Set.BijOn f {a} {b} ↔ f a = b
-- Set.BijOn.inter_mapsTo
theorem BijOn.inter_mapsTo (h₁ : BijOn f s₁ t₁) (h₂ : MapsTo f s₂ t₂) (h₃ : s₁ ∩ f ⁻¹' t₂ ⊆ s₂) :
    BijOn f (s₁ ∩ s₂) (t₁ ∩ t₂) 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t₁ t₂ : Set β} {f : α → β} (h₁ : Set.BijOn f s₁ t₁) (h₂ : Set.MapsTo f s₂ t₂) (h₃ : s₁ ∩ f ⁻¹' t₂ ⊆ s₂)
Goal: Set.BijOn f (s₁ ∩ s₂) (t₁ ∩ t₂)
-- Set.MapsTo.inter_bijOn
theorem MapsTo.inter_bijOn (h₁ : MapsTo f s₁ t₁) (h₂ : BijOn f s₂ t₂) (h₃ : s₂ ∩ f ⁻¹' t₁ ⊆ s₁) :
    BijOn f (s₁ ∩ s₂) (t₁ ∩ t₂) 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t₁ t₂ : Set β} {f : α → β} (h₁ : Set.MapsTo f s₁ t₁) (h₂ : Set.BijOn f s₂ t₂) (h₃ : s₂ ∩ f ⁻¹' t₁ ⊆ s₁)
Goal: Set.BijOn f (s₁ ∩ s₂) (t₁ ∩ t₂)
-- Set.BijOn.inter
theorem BijOn.inter (h₁ : BijOn f s₁ t₁) (h₂ : BijOn f s₂ t₂) (h : InjOn f (s₁ ∪ s₂)) :
    BijOn f (s₁ ∩ s₂) (t₁ ∩ t₂) 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t₁ t₂ : Set β} {f : α → β} (h₁ : Set.BijOn f s₁ t₁) (h₂ : Set.BijOn f s₂ t₂) (h : Set.InjOn f (s₁ ∪ s₂))
Goal: Set.BijOn f (s₁ ∩ s₂) (t₁ ∩ t₂)
-- Set.BijOn.union
theorem BijOn.union (h₁ : BijOn f s₁ t₁) (h₂ : BijOn f s₂ t₂) (h : InjOn f (s₁ ∪ s₂)) :
    BijOn f (s₁ ∪ s₂) (t₁ ∪ t₂) 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {t₁ t₂ : Set β} {f : α → β} (h₁ : Set.BijOn f s₁ t₁) (h₂ : Set.BijOn f s₂ t₂) (h : Set.InjOn f (s₁ ∪ s₂))
Goal: Set.BijOn f (s₁ ∪ s₂) (t₁ ∪ t₂)
-- Set.BijOn.subset_range
theorem BijOn.subset_range (h : BijOn f s t) : t ⊆ range f 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h : Set.BijOn f s t)
Goal: t ⊆ Set.range f
-- Set.InjOn.bijOn_image
theorem InjOn.bijOn_image (h : InjOn f s) : BijOn f s (f '' s) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} (h : Set.InjOn f s)
Goal: Set.BijOn f s (f '' s)
-- Set.BijOn.congr
theorem BijOn.congr (h₁ : BijOn f₁ s t) (h : EqOn f₁ f₂ s) : BijOn f₂ s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f₁ f₂ : α → β} (h₁ : Set.BijOn f₁ s t) (h : Set.EqOn f₁ f₂ s)
Goal: Set.BijOn f₂ s t
-- Set.EqOn.bijOn_iff
theorem EqOn.bijOn_iff (H : EqOn f₁ f₂ s) : BijOn f₁ s t ↔ BijOn f₂ s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f₁ f₂ : α → β} (H : Set.EqOn f₁ f₂ s)
Goal: Set.BijOn f₁ s t ↔ Set.BijOn f₂ s t
-- Set.BijOn.image_eq
theorem BijOn.image_eq (h : BijOn f s t) : f '' s = t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h : Set.BijOn f s t)
Goal: f '' s = t
-- Set.BijOn.forall
lemma BijOn.forall {p : β → Prop} (hf : BijOn f s t) : (∀ b ∈ t, p b) ↔ ∀ a ∈ s, p (f a) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {p : β → Prop} (hf : Set.BijOn f s t)
Goal: (∀ b ∈ t, p b) ↔ ∀ a ∈ s, p (f a)
-- Set.BijOn.exists
lemma BijOn.exists {p : β → Prop} (hf : BijOn f s t) : (∃ b ∈ t, p b) ↔ ∃ a ∈ s, p (f a) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {p : β → Prop} (hf : Set.BijOn f s t)
Goal: (∃ b ∈ t, p b) ↔ ∃ a ∈ s, p (f a)
-- Equiv.image_eq_iff_bijOn
lemma _root_.Equiv.image_eq_iff_bijOn (e : α ≃ β) : e '' s = t ↔ BijOn e s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} (e : α ≃ β)
Goal: ⇑e '' s = t ↔ Set.BijOn (⇑e) s t
-- Set.bijOn_id
lemma bijOn_id (s : Set α) : BijOn id s s 
Arguments: {α : Type u_1} (s : Set α)
Goal: Set.BijOn id s s
-- Set.BijOn.comp
theorem BijOn.comp (hg : BijOn g t p) (hf : BijOn f s t) : BijOn (g ∘ f) s p 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} {p : Set γ} {f : α → β} {g : β → γ} (hg : Set.BijOn g t p) (hf : Set.BijOn f s t)
Goal: Set.BijOn (g ∘ f) s p
-- Set.BijOn.iterate
lemma BijOn.iterate {f : α → α} {s : Set α} (h : BijOn f s s) : ∀ n, BijOn f^[n] s s
  
Arguments: {α : Type u_1} {f : α → α} {s : Set α} (h : Set.BijOn f s s) (n : ℕ)
Goal: Set.BijOn f^[n] s s
-- Set.bijOn_of_subsingleton'
lemma bijOn_of_subsingleton' [Subsingleton α] [Subsingleton β] (f : α → β)
    (h : s.Nonempty ↔ t.Nonempty) : BijOn f s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} [Subsingleton α] [Subsingleton β] (f : α → β) (h : s.Nonempty ↔ t.Nonempty)
Goal: Set.BijOn f s t
-- Set.bijOn_of_subsingleton
lemma bijOn_of_subsingleton [Subsingleton α] (f : α → α) (s : Set α) : BijOn f s s 
Arguments: {α : Type u_1} [Subsingleton α] (f : α → α) (s : Set α)
Goal: Set.BijOn f s s
-- Set.BijOn.bijective
theorem BijOn.bijective (h : BijOn f s t) : Bijective (h.mapsTo.restrict f s t) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (h : Set.BijOn f s t)
Goal: Function.Bijective (Set.MapsTo.restrict f s t ⋯)
-- Set.bijective_iff_bijOn_univ
theorem bijective_iff_bijOn_univ : Bijective f ↔ BijOn f univ univ 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β}
Goal: Function.Bijective f ↔ Set.BijOn f Set.univ Set.univ
-- Set.BijOn.compl
theorem BijOn.compl (hst : BijOn f s t) (hf : Bijective f) : BijOn f sᶜ tᶜ 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} (hst : Set.BijOn f s t) (hf : Function.Bijective f)
Goal: Set.BijOn f sᶜ tᶜ
-- Set.BijOn.subset_right
theorem BijOn.subset_right {r : Set β} (hf : BijOn f s t) (hrt : r ⊆ t) :
    BijOn f (s ∩ f ⁻¹' r) r 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {r : Set β} (hf : Set.BijOn f s t) (hrt : r ⊆ t)
Goal: Set.BijOn f (s ∩ f ⁻¹' r) r
-- Set.BijOn.subset_left
theorem BijOn.subset_left {r : Set α} (hf : BijOn f s t) (hrs : r ⊆ s) :
    BijOn f r (f '' r) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {r : Set α} (hf : Set.BijOn f s t) (hrs : r ⊆ s)
Goal: Set.BijOn f r (f '' r)
-- Set.LeftInvOn.eqOn
theorem eqOn (h : LeftInvOn f' f s) : EqOn (f' ∘ f) id s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} {f' : β → α} (h : Set.LeftInvOn f' f s)
Goal: Set.EqOn (f' ∘ f) id s
-- Set.LeftInvOn.eq
theorem eq (h : LeftInvOn f' f s) {x} (hx : x ∈ s) : f' (f x) = x 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} {f' : β → α} (h : Set.LeftInvOn f' f s) {x : α} (hx : x ∈ s)
Goal: f' (f x) = x
-- Set.LeftInvOn.congr_left
theorem congr_left (h₁ : LeftInvOn f₁' f s) {t : Set β} (h₁' : MapsTo f s t)
    (heq : EqOn f₁' f₂' t) : LeftInvOn f₂' f s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} {f₁' f₂' : β → α} (h₁ : Set.LeftInvOn f₁' f s) {t : Set β} (h₁' : Set.MapsTo f s t) (heq : Set.EqOn f₁' f₂' t)
Goal: Set.LeftInvOn f₂' f s
-- Set.LeftInvOn.congr_right
theorem congr_right (h₁ : LeftInvOn f₁' f₁ s) (heq : EqOn f₁ f₂ s) : LeftInvOn f₁' f₂ s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f₁ f₂ : α → β} {f₁' : β → α} (h₁ : Set.LeftInvOn f₁' f₁ s) (heq : Set.EqOn f₁ f₂ s)
Goal: Set.LeftInvOn f₁' f₂ s
-- Set.LeftInvOn.injOn
theorem injOn (h : LeftInvOn f₁' f s) : InjOn f s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} {f₁' : β → α} (h : Set.LeftInvOn f₁' f s)
Goal: Set.InjOn f s
-- Set.LeftInvOn.surjOn
theorem surjOn (h : LeftInvOn f' f s) (hf : MapsTo f s t) : SurjOn f' t s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {f' : β → α} (h : Set.LeftInvOn f' f s) (hf : Set.MapsTo f s t)
Goal: Set.SurjOn f' t s
-- Set.LeftInvOn.mapsTo
theorem mapsTo (h : LeftInvOn f' f s) (hf : SurjOn f s t) :
    MapsTo f' t s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {f' : β → α} (h : Set.LeftInvOn f' f s) (hf : Set.SurjOn f s t)
Goal: Set.MapsTo f' t s
-- Set.leftInvOn_id
lemma _root_.Set.leftInvOn_id (s : Set α) : LeftInvOn id id s 
Arguments: {α : Type u_1} (s : Set α)
Goal: Set.LeftInvOn id id s
-- Set.LeftInvOn.comp
theorem comp (hf' : LeftInvOn f' f s) (hg' : LeftInvOn g' g t) (hf : MapsTo f s t) :
    LeftInvOn (f' ∘ g') (g ∘ f) s 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} {f : α → β} {g : β → γ} {f' : β → α} {g' : γ → β} (hf' : Set.LeftInvOn f' f s) (hg' : Set.LeftInvOn g' g t) (hf : Set.MapsTo f s t)
Goal: Set.LeftInvOn (f' ∘ g') (g ∘ f) s
-- Set.LeftInvOn.mono
theorem mono (hf : LeftInvOn f' f s) (ht : s₁ ⊆ s) : LeftInvOn f' f s₁ 
Arguments: {α : Type u_1} {β : Type u_2} {s s₁ : Set α} {f : α → β} {f' : β → α} (hf : Set.LeftInvOn f' f s) (ht : s₁ ⊆ s)
Goal: Set.LeftInvOn f' f s₁
-- Set.LeftInvOn.image_inter'
theorem image_inter' (hf : LeftInvOn f' f s) : f '' (s₁ ∩ s) = f' ⁻¹' s₁ ∩ f '' s 
Arguments: {α : Type u_1} {β : Type u_2} {s s₁ : Set α} {f : α → β} {f' : β → α} (hf : Set.LeftInvOn f' f s)
Goal: f '' (s₁ ∩ s) = f' ⁻¹' s₁ ∩ f '' s
-- Set.LeftInvOn.image_inter
theorem image_inter (hf : LeftInvOn f' f s) :
    f '' (s₁ ∩ s) = f' ⁻¹' (s₁ ∩ s) ∩ f '' s 
Arguments: {α : Type u_1} {β : Type u_2} {s s₁ : Set α} {f : α → β} {f' : β → α} (hf : Set.LeftInvOn f' f s)
Goal: f '' (s₁ ∩ s) = f' ⁻¹' (s₁ ∩ s) ∩ f '' s
-- Set.LeftInvOn.image_image
theorem image_image (hf : LeftInvOn f' f s) : f' '' (f '' s) = s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} {f' : β → α} (hf : Set.LeftInvOn f' f s)
Goal: f' '' (f '' s) = s
-- Set.LeftInvOn.image_image'
theorem image_image' (hf : LeftInvOn f' f s) (hs : s₁ ⊆ s) : f' '' (f '' s₁) = s₁ 
Arguments: {α : Type u_1} {β : Type u_2} {s s₁ : Set α} {f : α → β} {f' : β → α} (hf : Set.LeftInvOn f' f s) (hs : s₁ ⊆ s)
Goal: f' '' (f '' s₁) = s₁
-- Set.RightInvOn.eqOn
theorem eqOn (h : RightInvOn f' f t) : EqOn (f ∘ f') id t 
Arguments: {α : Type u_1} {β : Type u_2} {t : Set β} {f : α → β} {f' : β → α} (h : Set.RightInvOn f' f t)
Goal: Set.EqOn (f ∘ f') id t