ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Function.iterate_comm
theorem iterate_comm (f : α → α) (m n : ℕ) : f^[n]^[m] = f^[m]^[n] 
Arguments: {α : Type u} (f : α → α) (m n : ℕ)
Goal: f^[n]^[m] = f^[m]^[n]
-- Function.iterate_commute
theorem iterate_commute (m n : ℕ) : Commute (fun f : α → α ↦ f^[m]) fun f ↦ f^[n] 
Arguments: {α : Type u} (m n : ℕ)
Goal: Function.Commute (fun f => f^[m]) fun f => f^[n]
-- Function.iterate_add_eq_iterate
lemma iterate_add_eq_iterate (hf : Injective f) : f^[m + n] a = f^[n] a ↔ f^[m] a = a 
Arguments: {α : Type u} {f : α → α} {m n : ℕ} {a : α} (hf : Function.Injective f)
Goal: f^[m + n] a = f^[n] a ↔ f^[m] a = a
-- Function.iterate_cancel
lemma iterate_cancel (hf : Injective f) (ha : f^[m] a = f^[n] a) : f^[m - n] a = a 
Arguments: {α : Type u} {f : α → α} {m n : ℕ} {a : α} (hf : Function.Injective f) (ha : f^[m] a = f^[n] a)
Goal: f^[m - n] a = a
-- Function.involutive_iff_iter_2_eq_id
theorem involutive_iff_iter_2_eq_id {α} {f : α → α} : Involutive f ↔ f^[2] = id 
Arguments: {α : Sort u_1} {f : α → α}
Goal: Function.Involutive f ↔ f^[2] = id
-- List.foldl_const
theorem foldl_const (f : α → α) (a : α) (l : List β) :
    l.foldl (fun b _ ↦ f b) a = f^[l.length] a 
Arguments: {α : Type u} {β : Type v} (f : α → α) (a : α) (l : List β)
Goal: List.foldl (fun b x => f b) a l = f^[l.length] a
-- List.foldr_const
theorem foldr_const (f : β → β) (b : β) : ∀ l : List α, l.foldr (fun _ ↦ f) b = f^[l.length] b
  
Arguments: {α : Type u} {β : Type v} (f : β → β) (b : β) (l : List α)
Goal: List.foldr (fun x => f) b l = f^[l.length] b
-- small_iff
@[mk_iff, pp_with_univ]
class Small (α : Type v) : Prop where
    equiv_small : ∃ S : Type w, Nonempty (α ≃ S)
Arguments: (α : Type v)
Goal: Small.{w, v} α ↔ ∃ S, Nonempty (α ≃ S)
-- Small.equiv_small
@[mk_iff, pp_with_univ]
class Small (α : Type v) : Prop where
    equiv_small : ∃ S : Type w, Nonempty (α ≃ S)
Arguments: {α : Type v} [self : Small.{w, v} α]
Goal: ∃ S, Nonempty (α ≃ S)
-- Small.mk'
theorem Small.mk' {α : Type v} {S : Type w} (e : α ≃ S) : Small.{w} α 
Arguments: {α : Type v} {S : Type w} (e : α ≃ S)
Goal: Small.{w, v} α
-- Shrink.ext
@[ext]
theorem Shrink.ext {α : Type v} [Small.{w} α] {x y : Shrink α}
    (w : (equivShrink _).symm x = (equivShrink _).symm y) : x = y 
Arguments: {α : Type v} [Small.{w, v} α] {x y : Shrink.{w, v} α} (w : (equivShrink α).symm x = (equivShrink α).symm y)
Goal: x = y
-- small_map
theorem small_map {α : Type*} {β : Type*} [hβ : Small.{w} β] (e : α ≃ β) : Small.{w} α 
Arguments: {α : Type u_1} {β : Type u_2} [hβ : Small.{w, u_2} β] (e : α ≃ β)
Goal: Small.{w, u_1} α
-- small_lift
theorem small_lift (α : Type u) [hα : Small.{v} α] : Small.{max v w} α 
Arguments: (α : Type u) [hα : Small.{v, u} α]
Goal: Small.{max v w, u} α
-- small_max
lemma small_max (α : Type v) : Small.{max w v} α 
Arguments: (α : Type v)
Goal: Small.{max w v, v} α
-- small_type
theorem small_type : Small.{max (u + 1) v} (Type u) 
Goal: Small.{max (u + 1) v, u + 1} (Type u)
-- small_congr
theorem small_congr {α : Type*} {β : Type*} (e : α ≃ β) : Small.{w} α ↔ Small.{w} β 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β)
Goal: Small.{w, u_1} α ↔ Small.{w, u_2} β
-- not_small_type
theorem not_small_type : ¬Small.{u} (Type max u v)
  
Goal: ¬Small.{u, max (u + 1) (v + 1)} (Type (max u v))
-- Equiv.range_eq_univ
@[simp]
theorem range_eq_univ {α : Type*} {β : Type*} (e : α ≃ β) : range e = univ 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β)
Goal: Set.range ⇑e = Set.univ
-- Equiv.image_eq_preimage
protected theorem image_eq_preimage {α β} (e : α ≃ β) (s : Set α) : e '' s = e.symm ⁻¹' s 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α)
Goal: ⇑e '' s = ⇑e.symm ⁻¹' s
-- Set.mem_image_equiv
@[simp 1001]
theorem _root_.Set.mem_image_equiv {α β} {S : Set α} {f : α ≃ β} {x : β} :
    x ∈ f '' S ↔ f.symm x ∈ S 
Arguments: {α : Type u_1} {β : Type u_2} {S : Set α} {f : α ≃ β} {x : β}
Goal: x ∈ ⇑f '' S ↔ f.symm x ∈ S
-- Set.image_equiv_eq_preimage_symm
theorem _root_.Set.image_equiv_eq_preimage_symm {α β} (S : Set α) (f : α ≃ β) :
    f '' S = f.symm ⁻¹' S 
Arguments: {α : Type u_1} {β : Type u_2} (S : Set α) (f : α ≃ β)
Goal: ⇑f '' S = ⇑f.symm ⁻¹' S
-- Set.preimage_equiv_eq_image_symm
theorem _root_.Set.preimage_equiv_eq_image_symm {α β} (S : Set α) (f : β ≃ α) :
    f ⁻¹' S = f.symm '' S 
Arguments: {α : Type u_1} {β : Type u_2} (S : Set α) (f : β ≃ α)
Goal: ⇑f ⁻¹' S = ⇑f.symm '' S
-- Equiv.symm_image_subset
@[simp high]
protected theorem symm_image_subset {α β} (e : α ≃ β) (s : Set α) (t : Set β) :
    e.symm '' t ⊆ s ↔ t ⊆ e '' s 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α) (t : Set β)
Goal: ⇑e.symm '' t ⊆ s ↔ t ⊆ ⇑e '' s
-- Equiv.subset_symm_image
@[simp high]
protected theorem subset_symm_image {α β} (e : α ≃ β) (s : Set α) (t : Set β) :
    s ⊆ e.symm '' t ↔ e '' s ⊆ t 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α) (t : Set β)
Goal: s ⊆ ⇑e.symm '' t ↔ ⇑e '' s ⊆ t
-- Equiv.symm_image_image
@[simp]
theorem symm_image_image {α β} (e : α ≃ β) (s : Set α) : e.symm '' (e '' s) = s 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α)
Goal: ⇑e.symm '' (⇑e '' s) = s
-- Equiv.eq_image_iff_symm_image_eq
theorem eq_image_iff_symm_image_eq {α β} (e : α ≃ β) (s : Set α) (t : Set β) :
    t = e '' s ↔ e.symm '' t = s 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α) (t : Set β)
Goal: t = ⇑e '' s ↔ ⇑e.symm '' t = s
-- Equiv.image_symm_image
@[simp]
theorem image_symm_image {α β} (e : α ≃ β) (s : Set β) : e '' (e.symm '' s) = s 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set β)
Goal: ⇑e '' (⇑e.symm '' s) = s
-- Equiv.image_preimage
@[simp]
theorem image_preimage {α β} (e : α ≃ β) (s : Set β) : e '' (e ⁻¹' s) = s 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set β)
Goal: ⇑e '' (⇑e ⁻¹' s) = s
-- Equiv.preimage_image
@[simp]
theorem preimage_image {α β} (e : α ≃ β) (s : Set α) : e ⁻¹' (e '' s) = s 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α)
Goal: ⇑e ⁻¹' (⇑e '' s) = s
-- Equiv.image_compl
protected theorem image_compl {α β} (f : Equiv α β) (s : Set α) : f '' sᶜ = (f '' s)ᶜ 
Arguments: {α : Type u_1} {β : Type u_2} (f : α ≃ β) (s : Set α)
Goal: ⇑f '' sᶜ = (⇑f '' s)ᶜ
-- Equiv.symm_preimage_preimage
@[simp]
theorem symm_preimage_preimage {α β} (e : α ≃ β) (s : Set β) : e.symm ⁻¹' (e ⁻¹' s) = s 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set β)
Goal: ⇑e.symm ⁻¹' (⇑e ⁻¹' s) = s
-- Equiv.preimage_symm_preimage
@[simp]
theorem preimage_symm_preimage {α β} (e : α ≃ β) (s : Set α) : e ⁻¹' (e.symm ⁻¹' s) = s 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α)
Goal: ⇑e ⁻¹' (⇑e.symm ⁻¹' s) = s
-- Equiv.preimage_subset
theorem preimage_subset {α β} (e : α ≃ β) (s t : Set β) : e ⁻¹' s ⊆ e ⁻¹' t ↔ s ⊆ t 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s t : Set β)
Goal: ⇑e ⁻¹' s ⊆ ⇑e ⁻¹' t ↔ s ⊆ t
-- Equiv.image_subset
theorem image_subset {α β} (e : α ≃ β) (s t : Set α) : e '' s ⊆ e '' t ↔ s ⊆ t 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s t : Set α)
Goal: ⇑e '' s ⊆ ⇑e '' t ↔ s ⊆ t
-- Equiv.image_eq_iff_eq
@[simp]
theorem image_eq_iff_eq {α β} (e : α ≃ β) (s t : Set α) : e '' s = e '' t ↔ s = t 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s t : Set α)
Goal: ⇑e '' s = ⇑e '' t ↔ s = t
-- Equiv.preimage_eq_iff_eq_image
theorem preimage_eq_iff_eq_image {α β} (e : α ≃ β) (s t) : e ⁻¹' s = t ↔ s = e '' t 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set β) (t : Set α)
Goal: ⇑e ⁻¹' s = t ↔ s = ⇑e '' t
-- Equiv.eq_preimage_iff_image_eq
theorem eq_preimage_iff_image_eq {α β} (e : α ≃ β) (s t) : s = e ⁻¹' t ↔ e '' s = t 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α) (t : Set β)
Goal: s = ⇑e ⁻¹' t ↔ ⇑e '' s = t
-- Equiv.setOf_apply_symm_eq_image_setOf
lemma setOf_apply_symm_eq_image_setOf {α β} (e : α ≃ β) (p : α → Prop) :
    {b | p (e.symm b)} = e '' {a | p a} 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (p : α → Prop)
Goal: {b | p (e.symm b)} = ⇑e '' {a | p a}
-- Equiv.prod_assoc_preimage
@[simp]
theorem prod_assoc_preimage {α β γ} {s : Set α} {t : Set β} {u : Set γ} :
    Equiv.prodAssoc α β γ ⁻¹' s ×ˢ t ×ˢ u = (s ×ˢ t) ×ˢ u 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} {u : Set γ}
Goal: ⇑(Equiv.prodAssoc α β γ) ⁻¹' s ×ˢ t ×ˢ u = (s ×ˢ t) ×ˢ u
-- Equiv.prod_assoc_symm_preimage
@[simp]
theorem prod_assoc_symm_preimage {α β γ} {s : Set α} {t : Set β} {u : Set γ} :
    (Equiv.prodAssoc α β γ).symm ⁻¹' (s ×ˢ t) ×ˢ u = s ×ˢ t ×ˢ u 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} {u : Set γ}
Goal: ⇑(Equiv.prodAssoc α β γ).symm ⁻¹' (s ×ˢ t) ×ˢ u = s ×ˢ t ×ˢ u
-- Equiv.prod_assoc_image
theorem prod_assoc_image {α β γ} {s : Set α} {t : Set β} {u : Set γ} :
    Equiv.prodAssoc α β γ '' (s ×ˢ t) ×ˢ u = s ×ˢ t ×ˢ u 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} {u : Set γ}
Goal: ⇑(Equiv.prodAssoc α β γ) '' (s ×ˢ t) ×ˢ u = s ×ˢ t ×ˢ u
-- Equiv.prod_assoc_symm_image
theorem prod_assoc_symm_image {α β γ} {s : Set α} {t : Set β} {u : Set γ} :
    (Equiv.prodAssoc α β γ).symm '' s ×ˢ t ×ˢ u = (s ×ˢ t) ×ˢ u 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} {u : Set γ}
Goal: ⇑(Equiv.prodAssoc α β γ).symm '' s ×ˢ t ×ˢ u = (s ×ˢ t) ×ˢ u
-- Equiv.setCongr_apply
@[simps! apply]
def setCongr {α : Type*} {s t : Set α} (h : s = t) : s ≃ t 
Arguments: {α : Type u_1} {s t : Set α} (h : s = t) (a : { a // (fun x => x ∈ s) a })
Goal: (Equiv.setCongr h) a = ⟨↑a, ⋯⟩
-- Equiv.image_apply_coe
@[simps]
def image {α β : Type*} (e : α ≃ β) (s : Set α) :
    s ≃ e '' s 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α) (x : ↑s)
Goal: ↑((e.image s) x) = e ↑x
-- Equiv.image_symm_apply_coe
@[simps]
def image {α β : Type*} (e : α ≃ β) (s : Set α) :
    s ≃ e '' s 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α) (y : ↑(⇑e '' s))
Goal: ↑((e.image s).symm y) = e.symm ↑y
-- Equiv.Set.union_apply_left
theorem union_apply_left {α} {s t : Set α} [DecidablePred fun x => x ∈ s] (H : s ∩ t ⊆ ∅)
    {a : (s ∪ t : Set α)} (ha : ↑a ∈ s) : Equiv.Set.union H a = Sum.inl ⟨a, ha⟩ 
Arguments: {α : Type u_1} {s t : Set α} [DecidablePred fun x => x ∈ s] (H : s ∩ t ⊆ ∅) {a : ↑(s ∪ t)} (ha : ↑a ∈ s)
Goal: (Equiv.Set.union H) a = Sum.inl ⟨↑a, ha⟩
-- Equiv.Set.union_apply_right
theorem union_apply_right {α} {s t : Set α} [DecidablePred fun x => x ∈ s] (H : s ∩ t ⊆ ∅)
    {a : (s ∪ t : Set α)} (ha : ↑a ∈ t) : Equiv.Set.union H a = Sum.inr ⟨a, ha⟩ 
Arguments: {α : Type u_1} {s t : Set α} [DecidablePred fun x => x ∈ s] (H : s ∩ t ⊆ ∅) {a : ↑(s ∪ t)} (ha : ↑a ∈ t)
Goal: (Equiv.Set.union H) a = Sum.inr ⟨↑a, ha⟩
-- Equiv.Set.union_symm_apply_left
@[simp]
theorem union_symm_apply_left {α} {s t : Set α} [DecidablePred fun x => x ∈ s] (H : s ∩ t ⊆ ∅)
    (a : s) : (Equiv.Set.union H).symm (Sum.inl a) = ⟨a, by simp⟩ 
Arguments: {α : Type u_1} {s t : Set α} [DecidablePred fun x => x ∈ s] (H : s ∩ t ⊆ ∅) (a : ↑s)
Goal: (Equiv.Set.union H).symm (Sum.inl a) = ⟨↑a, ⋯⟩
-- Equiv.Set.union_symm_apply_right
@[simp]
theorem union_symm_apply_right {α} {s t : Set α} [DecidablePred fun x => x ∈ s] (H : s ∩ t ⊆ ∅)
    (a : t) : (Equiv.Set.union H).symm (Sum.inr a) = ⟨a, by simp⟩ 
Arguments: {α : Type u_1} {s t : Set α} [DecidablePred fun x => x ∈ s] (H : s ∩ t ⊆ ∅) (a : ↑t)
Goal: (Equiv.Set.union H).symm (Sum.inr a) = ⟨↑a, ⋯⟩
-- Equiv.Set.ofEq_symm_apply
@[simps! apply symm_apply]
protected def ofEq {α : Type u} {s t : Set α} (h : s = t) : s ≃ t 
Arguments: {α : Type u} {s t : Set α} (h : s = t) (b : { b // (fun x => x ∈ t) b })
Goal: (Equiv.Set.ofEq h).symm b = ⟨↑b, ⋯⟩
-- Equiv.Set.ofEq_apply
@[simps! apply symm_apply]
protected def ofEq {α : Type u} {s t : Set α} (h : s = t) : s ≃ t 
Arguments: {α : Type u} {s t : Set α} (h : s = t) (a : { a // (fun x => x ∈ s) a })
Goal: (Equiv.Set.ofEq h) a = ⟨↑a, ⋯⟩
-- Equiv.Set.insert_symm_apply_inl
@[simp]
theorem insert_symm_apply_inl {α} {s : Set.{u} α} [DecidablePred (· ∈ s)] {a : α} (H : a ∉ s)
    (b : s) : (Equiv.Set.insert H).symm (Sum.inl b) = ⟨b, Or.inr b.2⟩ 
Arguments: {α : Type u} {s : Set α} [DecidablePred fun x => x ∈ s] {a : α} (H : a ∉ s) (b : ↑s)
Goal: (Equiv.Set.insert H).symm (Sum.inl b) = ⟨↑b, ⋯⟩
-- Equiv.Set.insert_symm_apply_inr
@[simp]
theorem insert_symm_apply_inr {α} {s : Set.{u} α} [DecidablePred (· ∈ s)] {a : α} (H : a ∉ s)
    (b : PUnit.{u + 1}) : (Equiv.Set.insert H).symm (Sum.inr b) = ⟨a, Or.inl rfl⟩ 
Arguments: {α : Type u} {s : Set α} [DecidablePred fun x => x ∈ s] {a : α} (H : a ∉ s) (b : PUnit.{u + 1})
Goal: (Equiv.Set.insert H).symm (Sum.inr b) = ⟨a, ⋯⟩
-- Equiv.Set.insert_apply_left
@[simp]
theorem insert_apply_left {α} {s : Set.{u} α} [DecidablePred (· ∈ s)] {a : α} (H : a ∉ s) :
    Equiv.Set.insert H ⟨a, Or.inl rfl⟩ = Sum.inr PUnit.unit 
Arguments: {α : Type u} {s : Set α} [DecidablePred fun x => x ∈ s] {a : α} (H : a ∉ s)
Goal: (Equiv.Set.insert H) ⟨a, ⋯⟩ = Sum.inr PUnit.unit
-- Equiv.Set.insert_apply_right
@[simp]
theorem insert_apply_right {α} {s : Set.{u} α} [DecidablePred (· ∈ s)] {a : α} (H : a ∉ s) (b : s) :
    Equiv.Set.insert H ⟨b, Or.inr b.2⟩ = Sum.inl b 
Arguments: {α : Type u} {s : Set α} [DecidablePred fun x => x ∈ s] {a : α} (H : a ∉ s) (b : ↑s)
Goal: (Equiv.Set.insert H) ⟨↑b, ⋯⟩ = Sum.inl b
-- Equiv.Set.sumCompl_apply_inl
@[simp]
theorem sumCompl_apply_inl {α : Type u} (s : Set α) [DecidablePred (· ∈ s)] (x : s) :
    Equiv.Set.sumCompl s (Sum.inl x) = x 
Arguments: {α : Type u} (s : Set α) [DecidablePred fun x => x ∈ s] (x : ↑s)
Goal: (Equiv.Set.sumCompl s) (Sum.inl x) = ↑x
-- Equiv.Set.sumCompl_apply_inr
@[simp]
theorem sumCompl_apply_inr {α : Type u} (s : Set α) [DecidablePred (· ∈ s)] (x : (sᶜ : Set α)) :
    Equiv.Set.sumCompl s (Sum.inr x) = x 
Arguments: {α : Type u} (s : Set α) [DecidablePred fun x => x ∈ s] (x : ↑sᶜ)
Goal: (Equiv.Set.sumCompl s) (Sum.inr x) = ↑x
-- Equiv.Set.sumCompl_symm_apply_of_mem
theorem sumCompl_symm_apply_of_mem {α : Type u} {s : Set α} [DecidablePred (· ∈ s)] {x : α}
    (hx : x ∈ s) : (Equiv.Set.sumCompl s).symm x = Sum.inl ⟨x, hx⟩ 
Arguments: {α : Type u} {s : Set α} [DecidablePred fun x => x ∈ s] {x : α} (hx : x ∈ s)
Goal: (Equiv.Set.sumCompl s).symm x = Sum.inl ⟨x, hx⟩
-- Equiv.Set.sumCompl_symm_apply_of_not_mem
theorem sumCompl_symm_apply_of_not_mem {α : Type u} {s : Set α} [DecidablePred (· ∈ s)] {x : α}
    (hx : x ∉ s) : (Equiv.Set.sumCompl s).symm x = Sum.inr ⟨x, hx⟩ 
Arguments: {α : Type u} {s : Set α} [DecidablePred fun x => x ∈ s] {x : α} (hx : x ∉ s)
Goal: (Equiv.Set.sumCompl s).symm x = Sum.inr ⟨x, hx⟩
-- Equiv.Set.sumCompl_symm_apply
@[simp]
theorem sumCompl_symm_apply {α : Type*} {s : Set α} [DecidablePred (· ∈ s)] {x : s} :
    (Equiv.Set.sumCompl s).symm x = Sum.inl x 
Arguments: {α : Type u_1} {s : Set α} [DecidablePred fun x => x ∈ s] {x : ↑s}
Goal: (Equiv.Set.sumCompl s).symm ↑x = Sum.inl x
-- Equiv.Set.sumCompl_symm_apply_compl
@[simp]
theorem sumCompl_symm_apply_compl {α : Type*} {s : Set α} [DecidablePred (· ∈ s)]
    {x : (sᶜ : Set α)} : (Equiv.Set.sumCompl s).symm x = Sum.inr x 
Arguments: {α : Type u_1} {s : Set α} [DecidablePred fun x => x ∈ s] {x : ↑sᶜ}
Goal: (Equiv.Set.sumCompl s).symm ↑x = Sum.inr x
-- Equiv.Set.sumDiffSubset_apply_inl
@[simp]
theorem sumDiffSubset_apply_inl {α} {s t : Set α} (h : s ⊆ t) [DecidablePred (· ∈ s)] (x : s) :
    Equiv.Set.sumDiffSubset h (Sum.inl x) = inclusion h x 
Arguments: {α : Type u_1} {s t : Set α} (h : s ⊆ t) [DecidablePred fun x => x ∈ s] (x : ↑s)
Goal: (Equiv.Set.sumDiffSubset h) (Sum.inl x) = Set.inclusion h x
-- Equiv.Set.sumDiffSubset_apply_inr
@[simp]
theorem sumDiffSubset_apply_inr {α} {s t : Set α} (h : s ⊆ t) [DecidablePred (· ∈ s)]
    (x : (t \ s : Set α)) : Equiv.Set.sumDiffSubset h (Sum.inr x) = inclusion diff_subset x 
Arguments: {α : Type u_1} {s t : Set α} (h : s ⊆ t) [DecidablePred fun x => x ∈ s] (x : ↑(t \ s))
Goal: (Equiv.Set.sumDiffSubset h) (Sum.inr x) = Set.inclusion ⋯ x
-- Equiv.Set.sumDiffSubset_symm_apply_of_mem
theorem sumDiffSubset_symm_apply_of_mem {α} {s t : Set α} (h : s ⊆ t) [DecidablePred (· ∈ s)]
    {x : t} (hx : x.1 ∈ s) : (Equiv.Set.sumDiffSubset h).symm x = Sum.inl ⟨x, hx⟩ 
Arguments: {α : Type u_1} {s t : Set α} (h : s ⊆ t) [DecidablePred fun x => x ∈ s] {x : ↑t} (hx : ↑x ∈ s)
Goal: (Equiv.Set.sumDiffSubset h).symm x = Sum.inl ⟨↑x, hx⟩
-- Equiv.Set.sumDiffSubset_symm_apply_of_not_mem
theorem sumDiffSubset_symm_apply_of_not_mem {α} {s t : Set α} (h : s ⊆ t) [DecidablePred (· ∈ s)]
    {x : t} (hx : x.1 ∉ s) : (Equiv.Set.sumDiffSubset h).symm x = Sum.inr ⟨x, ⟨x.2, hx⟩⟩ 
Arguments: {α : Type u_1} {s t : Set α} (h : s ⊆ t) [DecidablePred fun x => x ∈ s] {x : ↑t} (hx : ↑x ∉ s)
Goal: (Equiv.Set.sumDiffSubset h).symm x = Sum.inr ⟨↑x, ⋯⟩
-- Equiv.Set.univPi_symm_apply_coe
@[simps]
protected def univPi {α : Type*} {β : α → Type*} (s : ∀ a, Set (β a)) :
    pi univ s ≃ ∀ a, s a 
Arguments: {α : Type u_1} {β : α → Type u_2} (s : (a : α) → Set (β a)) (f : (a : α) → ↑(s a)) (a : α)
Goal: ↑((Equiv.Set.univPi s).symm f) a = ↑(f a)
-- Equiv.Set.univPi_apply_coe
@[simps]
protected def univPi {α : Type*} {β : α → Type*} (s : ∀ a, Set (β a)) :
    pi univ s ≃ ∀ a, s a 
Arguments: {α : Type u_1} {β : α → Type u_2} (s : (a : α) → Set (β a)) (f : ↑(Set.univ.pi s)) (a : α)
Goal: ↑((Equiv.Set.univPi s) f a) = ↑f a
-- Equiv.Set.image_apply
@[simps! apply]
protected noncomputable def image {α β} (f : α → β) (s : Set α) (H : Injective f) : s ≃ f '' s 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (s : Set α) (H : Function.Injective f) (p : ↑s)
Goal: (Equiv.Set.image f s H) p = ⟨f ↑p, ⋯⟩
-- Equiv.Set.image_symm_apply
@[simp]
protected theorem image_symm_apply {α β} (f : α → β) (s : Set α) (H : Injective f) (x : α)
    (h : f x ∈ f '' s) : (Set.image f s H).symm ⟨f x, h⟩ = ⟨x, H.mem_set_image.1 h⟩ 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (s : Set α) (H : Function.Injective f) (x : α) (h : f x ∈ f '' s)
Goal: (Equiv.Set.image f s H).symm ⟨f x, h⟩ = ⟨x, ⋯⟩
-- Equiv.Set.image_symm_preimage
theorem image_symm_preimage {α β} {f : α → β} (hf : Injective f) (u s : Set α) :
    (fun x => (Set.image f s hf).symm x : f '' s → α) ⁻¹' u = Subtype.val ⁻¹' (f '' u) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f) (u s : Set α)
Goal: (fun x => ↑((Equiv.Set.image f s hf).symm x)) ⁻¹' u = Subtype.val ⁻¹' (f '' u)
-- Equiv.Set.congr_symm_apply
@[simps]
protected def congr {α β : Type*} (e : α ≃ β) : Set α ≃ Set β 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (t : Set β)
Goal: (Equiv.Set.congr e).symm t = ⇑e.symm '' t
-- Equiv.Set.congr_apply
@[simps]
protected def congr {α β : Type*} (e : α ≃ β) : Set α ≃ Set β 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) (s : Set α)
Goal: (Equiv.Set.congr e) s = ⇑e '' s
-- Equiv.Set.rangeSplittingImageEquiv_symm_apply_coe
@[simps]
noncomputable def rangeSplittingImageEquiv {α β : Type*} (f : α → β) (s : Set (range f)) :
    rangeSplitting f '' s ≃ s 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (s : Set ↑(Set.range f)) (x : ↑s)
Goal: ↑((Equiv.Set.rangeSplittingImageEquiv f s).symm x) = Set.rangeSplitting f ↑x
-- Equiv.Set.rangeSplittingImageEquiv_apply_coe_coe
@[simps]
noncomputable def rangeSplittingImageEquiv {α β : Type*} (f : α → β) (s : Set (range f)) :
    rangeSplitting f '' s ≃ s 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (s : Set ↑(Set.range f)) (x : ↑(Set.rangeSplitting f '' s))
Goal: ↑↑((Equiv.Set.rangeSplittingImageEquiv f s) x) = f ↑x
-- Equiv.Set.rangeInl_symm_apply_coe
@[simps symm_apply_coe]
def rangeInl (α β : Type*) : Set.range (Sum.inl : α → α ⊕ β) ≃ α 
Arguments: (α : Type u_1) (β : Type u_2) (x : α)
Goal: ↑((Equiv.Set.rangeInl α β).symm x) = Sum.inl x
-- Equiv.Set.rangeInl_apply_inl
@[simp] lemma rangeInl_apply_inl {α : Type*} (β : Type*) (x : α) :
    (rangeInl α β) ⟨.inl x, mem_range_self _⟩ = x 
Arguments: {α : Type u_1} (β : Type u_2) (x : α)
Goal: (Equiv.Set.rangeInl α β) ⟨Sum.inl x, ⋯⟩ = x
-- Equiv.Set.rangeInr_symm_apply_coe
@[simps symm_apply_coe]
def rangeInr (α β : Type*) : Set.range (Sum.inr : β → α ⊕ β) ≃ β 
Arguments: (α : Type u_1) (β : Type u_2) (x : β)
Goal: ↑((Equiv.Set.rangeInr α β).symm x) = Sum.inr x
-- Equiv.Set.rangeInr_apply_inr
@[simp] lemma rangeInr_apply_inr (α : Type*) {β : Type*} (x : β) :
    (rangeInr α β) ⟨.inr x, mem_range_self _⟩ = x 
Arguments: (α : Type u_1) {β : Type u_2} (x : β)
Goal: (Equiv.Set.rangeInr α β) ⟨Sum.inr x, ⋯⟩ = x
-- Equiv.ofLeftInverse_symm_apply
@[simps]
def ofLeftInverse {α β : Sort _} (f : α → β) (f_inv : Nonempty α → β → α)
    (hf : ∀ h : Nonempty α, LeftInverse (f_inv h) f) :
    α ≃ range f 
Arguments: {α : Sort u_1} {β : Type u_2} (f : α → β) (f_inv : Nonempty α → β → α) (hf : ∀ (h : Nonempty α), Function.LeftInverse (f_inv h) f) (b : ↑(Set.range f))
Goal: (Equiv.ofLeftInverse f f_inv hf).symm b = f_inv ⋯ ↑b
-- Equiv.ofLeftInverse_apply_coe
@[simps]
def ofLeftInverse {α β : Sort _} (f : α → β) (f_inv : Nonempty α → β → α)
    (hf : ∀ h : Nonempty α, LeftInverse (f_inv h) f) :
    α ≃ range f 
Arguments: {α : Sort u_1} {β : Type u_2} (f : α → β) (f_inv : Nonempty α → β → α) (hf : ∀ (h : Nonempty α), Function.LeftInverse (f_inv h) f) (a : α)
Goal: ↑((Equiv.ofLeftInverse f f_inv hf) a) = f a
-- Equiv.ofInjective_apply
@[simps! apply]
noncomputable def ofInjective {α β} (f : α → β) (hf : Injective f) : α ≃ range f 
Arguments: {α : Sort u_1} {β : Type u_2} (f : α → β) (hf : Function.Injective f) (a : α)
Goal: (Equiv.ofInjective f hf) a = ⟨f a, ⋯⟩
-- Equiv.apply_ofInjective_symm
theorem apply_ofInjective_symm {α β} {f : α → β} (hf : Injective f) (b : range f) :
    f ((ofInjective f hf).symm b) = b 
Arguments: {α : Sort u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f) (b : ↑(Set.range f))
Goal: f ((Equiv.ofInjective f hf).symm b) = ↑b
-- Equiv.ofInjective_symm_apply
@[simp]
theorem ofInjective_symm_apply {α β} {f : α → β} (hf : Injective f) (a : α) :
    (ofInjective f hf).symm ⟨f a, ⟨a, rfl⟩⟩ = a 
Arguments: {α : Sort u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f) (a : α)
Goal: (Equiv.ofInjective f hf).symm ⟨f a, ⋯⟩ = a
-- Equiv.coe_ofInjective_symm
theorem coe_ofInjective_symm {α β} {f : α → β} (hf : Injective f) :
    ((ofInjective f hf).symm : range f → α) = rangeSplitting f 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f)
Goal: ⇑(Equiv.ofInjective f hf).symm = Set.rangeSplitting f
-- Equiv.self_comp_ofInjective_symm
@[simp]
theorem self_comp_ofInjective_symm {α β} {f : α → β} (hf : Injective f) :
    f ∘ (ofInjective f hf).symm = Subtype.val 
Arguments: {α : Sort u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f)
Goal: f ∘ ⇑(Equiv.ofInjective f hf).symm = Subtype.val
-- Equiv.ofLeftInverse_eq_ofInjective
theorem ofLeftInverse_eq_ofInjective {α β : Type*} (f : α → β) (f_inv : Nonempty α → β → α)
    (hf : ∀ h : Nonempty α, LeftInverse (f_inv h) f) :
    ofLeftInverse f f_inv hf =
      ofInjective f ((isEmpty_or_nonempty α).elim (fun h _ _ _ => Subsingleton.elim _ _)
        (fun h => (hf h).injective)) 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (f_inv : Nonempty α → β → α) (hf : ∀ (h : Nonempty α), Function.LeftInverse (f_inv h) f)
Goal: Equiv.ofLeftInverse f f_inv hf = Equiv.ofInjective f ⋯
-- Equiv.ofLeftInverse'_eq_ofInjective
theorem ofLeftInverse'_eq_ofInjective {α β : Type*} (f : α → β) (f_inv : β → α)
    (hf : LeftInverse f_inv f) : ofLeftInverse' f f_inv hf = ofInjective f hf.injective 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (f_inv : β → α) (hf : Function.LeftInverse f_inv f)
Goal: Equiv.ofLeftInverse' f f_inv hf = Equiv.ofInjective f ⋯
-- Equiv.set_forall_iff
protected theorem set_forall_iff {α β} (e : α ≃ β) {p : Set α → Prop} :
    (∀ a, p a) ↔ ∀ a, p (e ⁻¹' a) 
Arguments: {α : Type u_1} {β : Type u_2} (e : α ≃ β) {p : Set α → Prop}
Goal: (∀ (a : Set α), p a) ↔ ∀ (a : Set β), p (⇑e ⁻¹' a)