ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Set.range_const
@[simp]
theorem range_const : ∀ [Nonempty ι] {c : α}, (range fun _ : ι => c) = {c}
  
Arguments: {α : Type u_1} {ι : Sort u_4} [Nonempty ι] {c : α}
Goal: (Set.range fun x => c) = {c}
-- Set.range_subtype_map
theorem range_subtype_map {p : α → Prop} {q : β → Prop} (f : α → β) (h : ∀ x, p x → q (f x)) :
    range (Subtype.map f h) = (↑) ⁻¹' (f '' { x | p x }) 
Arguments: {α : Type u_1} {β : Type u_2} {p : α → Prop} {q : β → Prop} (f : α → β) (h : ∀ (x : α), p x → q (f x))
Goal: Set.range (Subtype.map f h) = Subtype.val ⁻¹' (f '' {x | p x})
-- Set.image_swap_eq_preimage_swap
theorem image_swap_eq_preimage_swap : image (@Prod.swap α β) = preimage Prod.swap 
Arguments: {α : Type u_1} {β : Type u_2}
Goal: Set.image Prod.swap = Set.preimage Prod.swap
-- Set.preimage_singleton_nonempty
theorem preimage_singleton_nonempty {f : α → β} {y : β} : (f ⁻¹' {y}).Nonempty ↔ y ∈ range f 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {y : β}
Goal: (f ⁻¹' {y}).Nonempty ↔ y ∈ Set.range f
-- Set.preimage_singleton_eq_empty
theorem preimage_singleton_eq_empty {f : α → β} {y : β} : f ⁻¹' {y} = ∅ ↔ y ∉ range f 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {y : β}
Goal: f ⁻¹' {y} = ∅ ↔ y ∉ Set.range f
-- Set.range_subset_singleton
theorem range_subset_singleton {f : ι → α} {x : α} : range f ⊆ {x} ↔ f = const ι x 
Arguments: {α : Type u_1} {ι : Sort u_4} {f : ι → α} {x : α}
Goal: Set.range f ⊆ {x} ↔ f = Function.const ι x
-- Set.image_compl_preimage
theorem image_compl_preimage {f : α → β} {s : Set β} : f '' (f ⁻¹' s)ᶜ = range f \ s 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {s : Set β}
Goal: f '' (f ⁻¹' s)ᶜ = Set.range f \ s
-- Set.rangeFactorization_eq
theorem rangeFactorization_eq {f : ι → β} : Subtype.val ∘ rangeFactorization f = f 
Arguments: {β : Type u_2} {ι : Sort u_4} {f : ι → β}
Goal: Subtype.val ∘ Set.rangeFactorization f = f
-- Set.rangeFactorization_coe
@[simp]
theorem rangeFactorization_coe (f : ι → β) (a : ι) : (rangeFactorization f a : β) = f a 
Arguments: {β : Type u_2} {ι : Sort u_4} (f : ι → β) (a : ι)
Goal: ↑(Set.rangeFactorization f a) = f a
-- Set.coe_comp_rangeFactorization
@[simp]
theorem coe_comp_rangeFactorization (f : ι → β) : (↑) ∘ rangeFactorization f = f 
Arguments: {β : Type u_2} {ι : Sort u_4} (f : ι → β)
Goal: Subtype.val ∘ Set.rangeFactorization f = f
-- Set.surjective_onto_range
theorem surjective_onto_range : Surjective (rangeFactorization f) 
Arguments: {α : Type u_1} {ι : Sort u_4} {f : ι → α}
Goal: Function.Surjective (Set.rangeFactorization f)
-- Set.image_eq_range
theorem image_eq_range (f : α → β) (s : Set α) : f '' s = range fun x : s => f x 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (s : Set α)
Goal: f '' s = Set.range fun x => f ↑x
-- Sum.range_eq
theorem _root_.Sum.range_eq (f : α ⊕ β → γ) :
    range f = range (f ∘ Sum.inl) ∪ range (f ∘ Sum.inr) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} (f : α ⊕ β → γ)
Goal: Set.range f = Set.range (f ∘ Sum.inl) ∪ Set.range (f ∘ Sum.inr)
-- Set.Sum.elim_range
@[simp]
theorem Sum.elim_range (f : α → γ) (g : β → γ) : range (Sum.elim f g) = range f ∪ range g 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} (f : α → γ) (g : β → γ)
Goal: Set.range (Sum.elim f g) = Set.range f ∪ Set.range g
-- Set.range_ite_subset'
theorem range_ite_subset' {p : Prop} [Decidable p] {f g : α → β} :
    range (if p then f else g) ⊆ range f ∪ range g 
Arguments: {α : Type u_1} {β : Type u_2} {p : Prop} [Decidable p] {f g : α → β}
Goal: Set.range (if p then f else g) ⊆ Set.range f ∪ Set.range g
-- Set.range_ite_subset
theorem range_ite_subset {p : α → Prop} [DecidablePred p] {f g : α → β} :
    (range fun x => if p x then f x else g x) ⊆ range f ∪ range g 
Arguments: {α : Type u_1} {β : Type u_2} {p : α → Prop} [DecidablePred p] {f g : α → β}
Goal: (Set.range fun x => if p x then f x else g x) ⊆ Set.range f ∪ Set.range g
-- Set.preimage_range
@[simp]
theorem preimage_range (f : α → β) : f ⁻¹' range f = univ 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β)
Goal: f ⁻¹' Set.range f = Set.univ
-- Set.range_unique
theorem range_unique [h : Unique ι] : range f = {f default} 
Arguments: {α : Type u_1} {ι : Sort u_4} {f : ι → α} [h : Unique ι]
Goal: Set.range f = {f default}
-- Set.range_diff_image_subset
theorem range_diff_image_subset (f : α → β) (s : Set α) : range f \ f '' s ⊆ f '' sᶜ 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (s : Set α)
Goal: Set.range f \ f '' s ⊆ f '' sᶜ
-- Set.range_diff_image
theorem range_diff_image {f : α → β} (H : Injective f) (s : Set α) : range f \ f '' s = f '' sᶜ 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (H : Function.Injective f) (s : Set α)
Goal: Set.range f \ f '' s = f '' sᶜ
-- Set.range_inclusion
@[simp]
theorem range_inclusion (h : s ⊆ t) : range (inclusion h) = { x : t | (x : α) ∈ s } 
Arguments: {α : Type u_1} {s t : Set α} (h : s ⊆ t)
Goal: Set.range (Set.inclusion h) = {x | ↑x ∈ s}
-- Set.leftInverse_rangeSplitting
theorem leftInverse_rangeSplitting (f : α → β) :
    LeftInverse (rangeFactorization f) (rangeSplitting f) 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β)
Goal: Function.LeftInverse (Set.rangeFactorization f) (Set.rangeSplitting f)
-- Set.rangeSplitting_injective
theorem rangeSplitting_injective (f : α → β) : Injective (rangeSplitting f) 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β)
Goal: Function.Injective (Set.rangeSplitting f)
-- Set.rightInverse_rangeSplitting
theorem rightInverse_rangeSplitting {f : α → β} (h : Injective f) :
    RightInverse (rangeFactorization f) (rangeSplitting f) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (h : Function.Injective f)
Goal: Function.RightInverse (Set.rangeFactorization f) (Set.rangeSplitting f)
-- Set.preimage_rangeSplitting
theorem preimage_rangeSplitting {f : α → β} (hf : Injective f) :
    preimage (rangeSplitting f) = image (rangeFactorization f) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f)
Goal: Set.preimage (Set.rangeSplitting f) = Set.image (Set.rangeFactorization f)
-- Set.isCompl_range_some_none
theorem isCompl_range_some_none (α : Type*) : IsCompl (range (some : α → Option α)) {none} 
Arguments: (α : Type u_6)
Goal: IsCompl (Set.range some) {none}
-- Set.compl_range_some
@[simp]
theorem compl_range_some (α : Type*) : (range (some : α → Option α))ᶜ = {none} 
Arguments: (α : Type u_6)
Goal: (Set.range some)ᶜ = {none}
-- Set.range_some_inter_none
@[simp]
theorem range_some_inter_none (α : Type*) : range (some : α → Option α) ∩ {none} = ∅ 
Arguments: (α : Type u_6)
Goal: Set.range some ∩ {none} = ∅
-- Set.range_some_union_none
theorem range_some_union_none (α : Type*) : range (some : α → Option α) ∪ {none} = univ 
Arguments: (α : Type u_6)
Goal: Set.range some ∪ {none} = Set.univ
-- Set.insert_none_range_some
@[simp]
theorem insert_none_range_some (α : Type*) : insert none (range (some : α → Option α)) = univ 
Arguments: (α : Type u_6)
Goal: insert none (Set.range some) = Set.univ
-- Set.Subsingleton.image
theorem Subsingleton.image (hs : s.Subsingleton) (f : α → β) : (f '' s).Subsingleton 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} (hs : s.Subsingleton) (f : α → β)
Goal: (f '' s).Subsingleton
-- Set.Subsingleton.preimage
theorem Subsingleton.preimage {s : Set β} (hs : s.Subsingleton) {f : α → β}
    (hf : Function.Injective f) : (f ⁻¹' s).Subsingleton 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set β} (hs : s.Subsingleton) {f : α → β} (hf : Function.Injective f)
Goal: (f ⁻¹' s).Subsingleton
-- Set.subsingleton_of_image
theorem subsingleton_of_image {f : α → β} (hf : Function.Injective f) (s : Set α)
    (hs : (f '' s).Subsingleton) : s.Subsingleton 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f) (s : Set α) (hs : (f '' s).Subsingleton)
Goal: s.Subsingleton
-- Set.subsingleton_of_preimage
theorem subsingleton_of_preimage {f : α → β} (hf : Function.Surjective f) (s : Set β)
    (hs : (f ⁻¹' s).Subsingleton) : s.Subsingleton 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Surjective f) (s : Set β) (hs : (f ⁻¹' s).Subsingleton)
Goal: s.Subsingleton
-- Set.subsingleton_range
theorem subsingleton_range {α : Sort*} [Subsingleton α] (f : α → β) : (range f).Subsingleton 
Arguments: {β : Type u_2} {α : Sort u_6} [Subsingleton α] (f : α → β)
Goal: (Set.range f).Subsingleton
-- Set.Nontrivial.preimage
theorem Nontrivial.preimage {s : Set β} (hs : s.Nontrivial) {f : α → β}
    (hf : Function.Surjective f) : (f ⁻¹' s).Nontrivial 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set β} (hs : s.Nontrivial) {f : α → β} (hf : Function.Surjective f)
Goal: (f ⁻¹' s).Nontrivial
-- Set.Nontrivial.image
theorem Nontrivial.image (hs : s.Nontrivial) {f : α → β} (hf : Function.Injective f) :
    (f '' s).Nontrivial 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} (hs : s.Nontrivial) {f : α → β} (hf : Function.Injective f)
Goal: (f '' s).Nontrivial
-- Set.nontrivial_of_image
theorem nontrivial_of_image (f : α → β) (s : Set α) (hs : (f '' s).Nontrivial) : s.Nontrivial 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (s : Set α) (hs : (f '' s).Nontrivial)
Goal: s.Nontrivial
-- Set.image_nontrivial
@[simp]
theorem image_nontrivial {f : α → β} (hf : f.Injective) : (f '' s).Nontrivial ↔ s.Nontrivial 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} (hf : Function.Injective f)
Goal: (f '' s).Nontrivial ↔ s.Nontrivial
-- Set.nontrivial_of_preimage
theorem nontrivial_of_preimage {f : α → β} (hf : Function.Injective f) (s : Set β)
    (hs : (f ⁻¹' s).Nontrivial) : s.Nontrivial 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f) (s : Set β) (hs : (f ⁻¹' s).Nontrivial)
Goal: s.Nontrivial
-- Function.Surjective.preimage_injective
theorem Surjective.preimage_injective (hf : Surjective f) : Injective (preimage f) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Surjective f)
Goal: Function.Injective (Set.preimage f)
-- Function.Injective.preimage_image
theorem Injective.preimage_image (hf : Injective f) (s : Set α) : f ⁻¹' (f '' s) = s 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f) (s : Set α)
Goal: f ⁻¹' (f '' s) = s
-- Function.Injective.preimage_surjective
theorem Injective.preimage_surjective (hf : Injective f) : Surjective (preimage f) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f)
Goal: Function.Surjective (Set.preimage f)
-- Function.Injective.subsingleton_image_iff
theorem Injective.subsingleton_image_iff (hf : Injective f) {s : Set α} :
    (f '' s).Subsingleton ↔ s.Subsingleton 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f) {s : Set α}
Goal: (f '' s).Subsingleton ↔ s.Subsingleton
-- Function.Surjective.image_preimage
theorem Surjective.image_preimage (hf : Surjective f) (s : Set β) : f '' (f ⁻¹' s) = s 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Surjective f) (s : Set β)
Goal: f '' (f ⁻¹' s) = s
-- Function.Surjective.image_surjective
theorem Surjective.image_surjective (hf : Surjective f) : Surjective (image f) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Surjective f)
Goal: Function.Surjective (Set.image f)
-- Function.Surjective.nonempty_preimage
@[simp]
theorem Surjective.nonempty_preimage (hf : Surjective f) {s : Set β} :
    (f ⁻¹' s).Nonempty ↔ s.Nonempty 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Surjective f) {s : Set β}
Goal: (f ⁻¹' s).Nonempty ↔ s.Nonempty
-- Function.Injective.image_injective
theorem Injective.image_injective (hf : Injective f) : Injective (image f) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f)
Goal: Function.Injective (Set.image f)
-- Function.Surjective.preimage_subset_preimage_iff
theorem Surjective.preimage_subset_preimage_iff {s t : Set β} (hf : Surjective f) :
    f ⁻¹' s ⊆ f ⁻¹' t ↔ s ⊆ t 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {s t : Set β} (hf : Function.Surjective f)
Goal: f ⁻¹' s ⊆ f ⁻¹' t ↔ s ⊆ t
-- Function.Surjective.range_comp
theorem Surjective.range_comp {ι' : Sort*} {f : ι → ι'} (hf : Surjective f) (g : ι' → α) :
    range (g ∘ f) = range g 
Arguments: {α : Type u_1} {ι : Sort u_3} {ι' : Sort u_4} {f : ι → ι'} (hf : Function.Surjective f) (g : ι' → α)
Goal: Set.range (g ∘ f) = Set.range g
-- Function.Injective.mem_range_iff_exists_unique
theorem Injective.mem_range_iff_exists_unique (hf : Injective f) {b : β} :
    b ∈ range f ↔ ∃! a, f a = b 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f) {b : β}
Goal: b ∈ Set.range f ↔ ∃! a, f a = b
-- Function.Injective.exists_unique_of_mem_range
theorem Injective.exists_unique_of_mem_range (hf : Injective f) {b : β} (hb : b ∈ range f) :
    ∃! a, f a = b 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f) {b : β} (hb : b ∈ Set.range f)
Goal: ∃! a, f a = b
-- Function.Injective.compl_image_eq
theorem Injective.compl_image_eq (hf : Injective f) (s : Set α) :
    (f '' s)ᶜ = f '' sᶜ ∪ (range f)ᶜ 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f) (s : Set α)
Goal: (f '' s)ᶜ = f '' sᶜ ∪ (Set.range f)ᶜ
-- Function.LeftInverse.image_image
theorem LeftInverse.image_image {g : β → α} (h : LeftInverse g f) (s : Set α) :
    g '' (f '' s) = s 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {g : β → α} (h : Function.LeftInverse g f) (s : Set α)
Goal: g '' (f '' s) = s
-- Function.LeftInverse.preimage_preimage
theorem LeftInverse.preimage_preimage {g : β → α} (h : LeftInverse g f) (s : Set α) :
    f ⁻¹' (g ⁻¹' s) = s 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {g : β → α} (h : Function.LeftInverse g f) (s : Set α)
Goal: f ⁻¹' (g ⁻¹' s) = s
-- Function.Involutive.preimage
protected theorem Involutive.preimage {f : α → α} (hf : Involutive f) : Involutive (preimage f) 
Arguments: {α : Type u_1} {f : α → α} (hf : Function.Involutive f)
Goal: Function.Involutive (Set.preimage f)
-- EquivLike.range_comp
@[simp] lemma range_comp {α : Type*} (f : ι' → α) (e : E) : range (f ∘ e) = range f 
Arguments: {ι : Sort u_1} {ι' : Sort u_2} {E : Type u_3} [EquivLike E ι ι'] {α : Type u_4} (f : ι' → α) (e : E)
Goal: Set.range (f ∘ ⇑e) = Set.range f
-- Subtype.coe_image
theorem coe_image {p : α → Prop} {s : Set (Subtype p)} :
    (↑) '' s = { x | ∃ h : p x, (⟨x, h⟩ : Subtype p) ∈ s } 
Arguments: {α : Type u_1} {p : α → Prop} {s : Set (Subtype p)}
Goal: Subtype.val '' s = {x | ∃ (h : p x), ⟨x, h⟩ ∈ s}
-- Subtype.coe_image_of_subset
@[simp]
theorem coe_image_of_subset {s t : Set α} (h : t ⊆ s) : (↑) '' { x : ↥s | ↑x ∈ t } = t 
Arguments: {α : Type u_1} {s t : Set α} (h : t ⊆ s)
Goal: Subtype.val '' {x | ↑x ∈ t} = t
-- Subtype.range_coe
theorem range_coe {s : Set α} : range ((↑) : s → α) = s 
Arguments: {α : Type u_1} {s : Set α}
Goal: Set.range Subtype.val = s
-- Subtype.range_val
theorem range_val {s : Set α} : range (Subtype.val : s → α) = s 
Arguments: {α : Type u_1} {s : Set α}
Goal: Set.range Subtype.val = s
-- Subtype.range_coe_subtype
@[simp]
theorem range_coe_subtype {p : α → Prop} : range ((↑) : Subtype p → α) = { x | p x } 
Arguments: {α : Type u_1} {p : α → Prop}
Goal: Set.range Subtype.val = {x | p x}
-- Subtype.coe_preimage_self
@[simp]
theorem coe_preimage_self (s : Set α) : ((↑) : s → α) ⁻¹' s = univ 
Arguments: {α : Type u_1} (s : Set α)
Goal: Subtype.val ⁻¹' s = Set.univ
-- Subtype.range_val_subtype
theorem range_val_subtype {p : α → Prop} : range (Subtype.val : Subtype p → α) = { x | p x } 
Arguments: {α : Type u_1} {p : α → Prop}
Goal: Set.range Subtype.val = {x | p x}
-- Subtype.coe_image_subset
theorem coe_image_subset (s : Set α) (t : Set s) : ((↑) : s → α) '' t ⊆ s 
Arguments: {α : Type u_1} (s : Set α) (t : Set ↑s)
Goal: Subtype.val '' t ⊆ s
-- Subtype.coe_image_univ
theorem coe_image_univ (s : Set α) : ((↑) : s → α) '' Set.univ = s 
Arguments: {α : Type u_1} (s : Set α)
Goal: Subtype.val '' Set.univ = s
-- Subtype.image_preimage_coe
@[simp]
theorem image_preimage_coe (s t : Set α) : ((↑) : s → α) '' (((↑) : s → α) ⁻¹' t) = s ∩ t 
Arguments: {α : Type u_1} (s t : Set α)
Goal: Subtype.val '' (Subtype.val ⁻¹' t) = s ∩ t
-- Subtype.image_preimage_val
theorem image_preimage_val (s t : Set α) : (Subtype.val : s → α) '' (Subtype.val ⁻¹' t) = s ∩ t 
Arguments: {α : Type u_1} (s t : Set α)
Goal: Subtype.val '' (Subtype.val ⁻¹' t) = s ∩ t
-- Subtype.preimage_coe_eq_preimage_coe_iff
theorem preimage_coe_eq_preimage_coe_iff {s t u : Set α} :
    ((↑) : s → α) ⁻¹' t = ((↑) : s → α) ⁻¹' u ↔ s ∩ t = s ∩ u 
Arguments: {α : Type u_1} {s t u : Set α}
Goal: Subtype.val ⁻¹' t = Subtype.val ⁻¹' u ↔ s ∩ t = s ∩ u
-- Subtype.preimage_coe_self_inter
theorem preimage_coe_self_inter (s t : Set α) :
    ((↑) : s → α) ⁻¹' (s ∩ t) = ((↑) : s → α) ⁻¹' t 
Arguments: {α : Type u_1} (s t : Set α)
Goal: Subtype.val ⁻¹' (s ∩ t) = Subtype.val ⁻¹' t
-- Subtype.preimage_coe_inter_self
theorem preimage_coe_inter_self (s t : Set α) :
    ((↑) : s → α) ⁻¹' (t ∩ s) = ((↑) : s → α) ⁻¹' t 
Arguments: {α : Type u_1} (s t : Set α)
Goal: Subtype.val ⁻¹' (t ∩ s) = Subtype.val ⁻¹' t
-- Subtype.preimage_val_eq_preimage_val_iff
theorem preimage_val_eq_preimage_val_iff (s t u : Set α) :
    (Subtype.val : s → α) ⁻¹' t = Subtype.val ⁻¹' u ↔ s ∩ t = s ∩ u 
Arguments: {α : Type u_1} (s t u : Set α)
Goal: Subtype.val ⁻¹' t = Subtype.val ⁻¹' u ↔ s ∩ t = s ∩ u
-- Subtype.preimage_val_subset_preimage_val_iff
lemma preimage_val_subset_preimage_val_iff (s t u : Set α) :
    (Subtype.val ⁻¹' t : Set s) ⊆ Subtype.val ⁻¹' u ↔ s ∩ t ⊆ s ∩ u 
Arguments: {α : Type u_1} (s t u : Set α)
Goal: Subtype.val ⁻¹' t ⊆ Subtype.val ⁻¹' u ↔ s ∩ t ⊆ s ∩ u
-- Subtype.exists_set_subtype
theorem exists_set_subtype {t : Set α} (p : Set α → Prop) :
    (∃ s : Set t, p (((↑) : t → α) '' s)) ↔ ∃ s : Set α, s ⊆ t ∧ p s 
Arguments: {α : Type u_1} {t : Set α} (p : Set α → Prop)
Goal: (∃ s, p (Subtype.val '' s)) ↔ ∃ s ⊆ t, p s
-- Subtype.forall_set_subtype
theorem forall_set_subtype {t : Set α} (p : Set α → Prop) :
    (∀ s : Set t, p (((↑) : t → α) '' s)) ↔ ∀ s : Set α, s ⊆ t → p s 
Arguments: {α : Type u_1} {t : Set α} (p : Set α → Prop)
Goal: (∀ (s : Set ↑t), p (Subtype.val '' s)) ↔ ∀ s ⊆ t, p s
-- Subtype.preimage_coe_nonempty
theorem preimage_coe_nonempty {s t : Set α} :
    (((↑) : s → α) ⁻¹' t).Nonempty ↔ (s ∩ t).Nonempty 
Arguments: {α : Type u_1} {s t : Set α}
Goal: (Subtype.val ⁻¹' t).Nonempty ↔ (s ∩ t).Nonempty
-- Subtype.preimage_coe_eq_empty
theorem preimage_coe_eq_empty {s t : Set α} : ((↑) : s → α) ⁻¹' t = ∅ ↔ s ∩ t = ∅ 
Arguments: {α : Type u_1} {s t : Set α}
Goal: Subtype.val ⁻¹' t = ∅ ↔ s ∩ t = ∅
-- Subtype.preimage_coe_compl
theorem preimage_coe_compl (s : Set α) : ((↑) : s → α) ⁻¹' sᶜ = ∅ 
Arguments: {α : Type u_1} (s : Set α)
Goal: Subtype.val ⁻¹' sᶜ = ∅
-- Subtype.preimage_coe_compl'
@[simp]
theorem preimage_coe_compl' (s : Set α) :
    (fun x : (sᶜ : Set α) => (x : α)) ⁻¹' s = ∅ 
Arguments: {α : Type u_1} (s : Set α)
Goal: (fun x => ↑x) ⁻¹' s = ∅
-- Option.injective_iff
theorem injective_iff {α β} {f : Option α → β} :
    Injective f ↔ Injective (f ∘ some) ∧ f none ∉ range (f ∘ some) 
Arguments: {α : Type u_1} {β : Type u_2} {f : Option α → β}
Goal: Function.Injective f ↔ Function.Injective (f ∘ some) ∧ f none ∉ Set.range (f ∘ some)
-- Option.range_eq
theorem range_eq {α β} (f : Option α → β) : range f = insert (f none) (range (f ∘ some)) 
Arguments: {α : Type u_1} {β : Type u_2} (f : Option α → β)
Goal: Set.range f = insert (f none) (Set.range (f ∘ some))
-- WithBot.range_eq
theorem WithBot.range_eq {α β} (f : WithBot α → β) :
    range f = insert (f ⊥) (range (f ∘ WithBot.some : α → β)) 
Arguments: {α : Type u_1} {β : Type u_2} (f : WithBot α → β)
Goal: Set.range f = insert (f ⊥) (Set.range (f ∘ WithBot.some))
-- WithTop.range_eq
theorem WithTop.range_eq {α β} (f : WithTop α → β) :
    range f = insert (f ⊤) (range (f ∘ WithBot.some : α → β)) 
Arguments: {α : Type u_1} {β : Type u_2} (f : WithTop α → β)
Goal: Set.range f = insert (f ⊤) (Set.range (f ∘ WithBot.some))
-- Set.preimage_injective
@[simp]
theorem preimage_injective : Injective (preimage f) ↔ Surjective f 
Arguments: {α : Type u} {β : Type v} {f : α → β}
Goal: Function.Injective (Set.preimage f) ↔ Function.Surjective f
-- Set.preimage_surjective
@[simp]
theorem preimage_surjective : Surjective (preimage f) ↔ Injective f 
Arguments: {α : Type u} {β : Type v} {f : α → β}
Goal: Function.Surjective (Set.preimage f) ↔ Function.Injective f
-- Set.image_surjective
@[simp]
theorem image_surjective : Surjective (image f) ↔ Surjective f 
Arguments: {α : Type u} {β : Type v} {f : α → β}
Goal: Function.Surjective (Set.image f) ↔ Function.Surjective f
-- Set.image_injective
@[simp]
theorem image_injective : Injective (image f) ↔ Injective f 
Arguments: {α : Type u} {β : Type v} {f : α → β}
Goal: Function.Injective (Set.image f) ↔ Function.Injective f
-- Set.preimage_eq_iff_eq_image
theorem preimage_eq_iff_eq_image {f : α → β} (hf : Bijective f) {s t} :
    f ⁻¹' s = t ↔ s = f '' t 
Arguments: {α : Type u} {β : Type v} {f : α → β} (hf : Function.Bijective f) {s : Set β} {t : Set α}
Goal: f ⁻¹' s = t ↔ s = f '' t
-- Set.eq_preimage_iff_image_eq
theorem eq_preimage_iff_image_eq {f : α → β} (hf : Bijective f) {s t} :
    s = f ⁻¹' t ↔ f '' s = t 
Arguments: {α : Type u} {β : Type v} {f : α → β} (hf : Function.Bijective f) {s : Set α} {t : Set β}
Goal: s = f ⁻¹' t ↔ f '' s = t
-- Disjoint.preimage
theorem Disjoint.preimage (f : α → β) {s t : Set β} (h : Disjoint s t) :
    Disjoint (f ⁻¹' s) (f ⁻¹' t) 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) {s t : Set β} (h : Disjoint s t)
Goal: Disjoint (f ⁻¹' s) (f ⁻¹' t)
-- Codisjoint.preimage
lemma Codisjoint.preimage (f : α → β) {s t : Set β} (h : Codisjoint s t) :
    Codisjoint (f ⁻¹' s) (f ⁻¹' t) 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) {s t : Set β} (h : Codisjoint s t)
Goal: Codisjoint (f ⁻¹' s) (f ⁻¹' t)
-- IsCompl.preimage
lemma IsCompl.preimage (f : α → β) {s t : Set β} (h : IsCompl s t) :
    IsCompl (f ⁻¹' s) (f ⁻¹' t) 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) {s t : Set β} (h : IsCompl s t)
Goal: IsCompl (f ⁻¹' s) (f ⁻¹' t)
-- Set.disjoint_image_image
theorem disjoint_image_image {f : β → α} {g : γ → α} {s : Set β} {t : Set γ}
    (h : ∀ b ∈ s, ∀ c ∈ t, f b ≠ g c) : Disjoint (f '' s) (g '' t) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {f : β → α} {g : γ → α} {s : Set β} {t : Set γ} (h : ∀ b ∈ s, ∀ c ∈ t, f b ≠ g c)
Goal: Disjoint (f '' s) (g '' t)
-- Set.disjoint_image_of_injective
theorem disjoint_image_of_injective (hf : Injective f) {s t : Set α} (hd : Disjoint s t) :
    Disjoint (f '' s) (f '' t) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Injective f) {s t : Set α} (hd : Disjoint s t)
Goal: Disjoint (f '' s) (f '' t)
-- Disjoint.of_image
theorem _root_.Disjoint.of_image (h : Disjoint (f '' s) (f '' t)) : Disjoint s t 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {s t : Set α} (h : Disjoint (f '' s) (f '' t))
Goal: Disjoint s t
-- Set.disjoint_image_iff
@[simp]
theorem disjoint_image_iff (hf : Injective f) : Disjoint (f '' s) (f '' t) ↔ Disjoint s t 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {s t : Set α} (hf : Function.Injective f)
Goal: Disjoint (f '' s) (f '' t) ↔ Disjoint s t
-- Disjoint.of_preimage
theorem _root_.Disjoint.of_preimage (hf : Surjective f) {s t : Set β}
    (h : Disjoint (f ⁻¹' s) (f ⁻¹' t)) : Disjoint s t 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Surjective f) {s t : Set β} (h : Disjoint (f ⁻¹' s) (f ⁻¹' t))
Goal: Disjoint s t
-- Set.disjoint_preimage_iff
@[simp]
theorem disjoint_preimage_iff (hf : Surjective f) {s t : Set β} :
    Disjoint (f ⁻¹' s) (f ⁻¹' t) ↔ Disjoint s t 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} (hf : Function.Surjective f) {s t : Set β}
Goal: Disjoint (f ⁻¹' s) (f ⁻¹' t) ↔ Disjoint s t
-- Set.preimage_eq_empty
theorem preimage_eq_empty {s : Set β} (h : Disjoint s (range f)) :
    f ⁻¹' s = ∅ 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {s : Set β} (h : Disjoint s (Set.range f))
Goal: f ⁻¹' s = ∅
-- Set.preimage_eq_empty_iff
theorem preimage_eq_empty_iff {s : Set β} : f ⁻¹' s = ∅ ↔ Disjoint s (range f) 
Arguments: {α : Type u_1} {β : Type u_2} {f : α → β} {s : Set β}
Goal: f ⁻¹' s = ∅ ↔ Disjoint s (Set.range f)