ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Set.RightInvOn.eq
theorem eq (h : RightInvOn f' f t) {y} (hy : y ∈ t) : f (f' y) = y 
Arguments: {α : Type u_1} {β : Type u_2} {t : Set β} {f : α → β} {f' : β → α} (h : Set.RightInvOn f' f t) {y : β} (hy : y ∈ t)
Goal: f (f' y) = y
-- Set.LeftInvOn.rightInvOn_image
theorem _root_.Set.LeftInvOn.rightInvOn_image (h : LeftInvOn f' f s) : RightInvOn f' f (f '' s) 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} {f' : β → α} (h : Set.LeftInvOn f' f s)
Goal: Set.RightInvOn f' f (f '' s)
-- Set.RightInvOn.congr_left
theorem congr_left (h₁ : RightInvOn f₁' f t) (heq : EqOn f₁' f₂' t) :
    RightInvOn f₂' f t 
Arguments: {α : Type u_1} {β : Type u_2} {t : Set β} {f : α → β} {f₁' f₂' : β → α} (h₁ : Set.RightInvOn f₁' f t) (heq : Set.EqOn f₁' f₂' t)
Goal: Set.RightInvOn f₂' f t
-- Set.RightInvOn.congr_right
theorem congr_right (h₁ : RightInvOn f' f₁ t) (hg : MapsTo f' t s) (heq : EqOn f₁ f₂ s) :
    RightInvOn f' f₂ t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f₁ f₂ : α → β} {f' : β → α} (h₁ : Set.RightInvOn f' f₁ t) (hg : Set.MapsTo f' t s) (heq : Set.EqOn f₁ f₂ s)
Goal: Set.RightInvOn f' f₂ t
-- Set.RightInvOn.surjOn
theorem surjOn (hf : RightInvOn f' f t) (hf' : MapsTo f' t s) : SurjOn f s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {f' : β → α} (hf : Set.RightInvOn f' f t) (hf' : Set.MapsTo f' t s)
Goal: Set.SurjOn f s t
-- Set.RightInvOn.mapsTo
theorem mapsTo (h : RightInvOn f' f t) (hf : SurjOn f' t s) : MapsTo f s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {f' : β → α} (h : Set.RightInvOn f' f t) (hf : Set.SurjOn f' t s)
Goal: Set.MapsTo f s t
-- Set.rightInvOn_id
lemma _root_.Set.rightInvOn_id (s : Set α) : RightInvOn id id s 
Arguments: {α : Type u_1} (s : Set α)
Goal: Set.RightInvOn id id s
-- Set.RightInvOn.comp
theorem comp (hf : RightInvOn f' f t) (hg : RightInvOn g' g p) (g'pt : MapsTo g' p t) :
    RightInvOn (f' ∘ g') (g ∘ f) p 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Set β} {p : Set γ} {f : α → β} {g : β → γ} {f' : β → α} {g' : γ → β} (hf : Set.RightInvOn f' f t) (hg : Set.RightInvOn g' g p) (g'pt : Set.MapsTo g' p t)
Goal: Set.RightInvOn (f' ∘ g') (g ∘ f) p
-- Set.RightInvOn.mono
theorem mono (hf : RightInvOn f' f t) (ht : t₁ ⊆ t) : RightInvOn f' f t₁ 
Arguments: {α : Type u_1} {β : Type u_2} {t t₁ : Set β} {f : α → β} {f' : β → α} (hf : Set.RightInvOn f' f t) (ht : t₁ ⊆ t)
Goal: Set.RightInvOn f' f t₁
-- Set.InjOn.rightInvOn_of_leftInvOn
theorem InjOn.rightInvOn_of_leftInvOn (hf : InjOn f s) (hf' : LeftInvOn f f' t)
    (h₁ : MapsTo f s t) (h₂ : MapsTo f' t s) : RightInvOn f f' s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {f' : β → α} (hf : Set.InjOn f s) (hf' : Set.LeftInvOn f f' t) (h₁ : Set.MapsTo f s t) (h₂ : Set.MapsTo f' t s)
Goal: Set.RightInvOn f f' s
-- Set.eqOn_of_leftInvOn_of_rightInvOn
theorem eqOn_of_leftInvOn_of_rightInvOn (h₁ : LeftInvOn f₁' f s) (h₂ : RightInvOn f₂' f t)
    (h : MapsTo f₂' t s) : EqOn f₁' f₂' t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {f₁' f₂' : β → α} (h₁ : Set.LeftInvOn f₁' f s) (h₂ : Set.RightInvOn f₂' f t) (h : Set.MapsTo f₂' t s)
Goal: Set.EqOn f₁' f₂' t
-- Set.SurjOn.leftInvOn_of_rightInvOn
theorem SurjOn.leftInvOn_of_rightInvOn (hf : SurjOn f s t) (hf' : RightInvOn f f' s) :
    LeftInvOn f f' t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {f' : β → α} (hf : Set.SurjOn f s t) (hf' : Set.RightInvOn f f' s)
Goal: Set.LeftInvOn f f' t
-- Set.invOn_id
lemma _root_.Set.invOn_id (s : Set α) : InvOn id id s s 
Arguments: {α : Type u_1} (s : Set α)
Goal: Set.InvOn id id s s
-- Set.InvOn.comp
lemma comp (hf : InvOn f' f s t) (hg : InvOn g' g t p) (fst : MapsTo f s t)
    (g'pt : MapsTo g' p t) :
    InvOn (f' ∘ g') (g ∘ f) s p 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {s : Set α} {t : Set β} {p : Set γ} {f : α → β} {g : β → γ} {f' : β → α} {g' : γ → β} (hf : Set.InvOn f' f s t) (hg : Set.InvOn g' g t p) (fst : Set.MapsTo f s t) (g'pt : Set.MapsTo g' p t)
Goal: Set.InvOn (f' ∘ g') (g ∘ f) s p
-- Set.InvOn.symm
@[symm]
theorem symm (h : InvOn f' f s t) : InvOn f f' t s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {f' : β → α} (h : Set.InvOn f' f s t)
Goal: Set.InvOn f f' t s
-- Set.InvOn.mono
theorem mono (h : InvOn f' f s t) (hs : s₁ ⊆ s) (ht : t₁ ⊆ t) : InvOn f' f s₁ t₁ 
Arguments: {α : Type u_1} {β : Type u_2} {s s₁ : Set α} {t t₁ : Set β} {f : α → β} {f' : β → α} (h : Set.InvOn f' f s t) (hs : s₁ ⊆ s) (ht : t₁ ⊆ t)
Goal: Set.InvOn f' f s₁ t₁
-- Set.InvOn.bijOn
theorem bijOn (h : InvOn f' f s t) (hf : MapsTo f s t) (hf' : MapsTo f' t s) : BijOn f s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {f' : β → α} (h : Set.InvOn f' f s t) (hf : Set.MapsTo f s t) (hf' : Set.MapsTo f' t s)
Goal: Set.BijOn f s t
-- Function.invFunOn_pos
theorem invFunOn_pos (h : ∃ a ∈ s, f a = b) : invFunOn f s b ∈ s ∧ f (invFunOn f s b) = b 
Arguments: {α : Type u_1} {β : Type u_2} [Nonempty α] {s : Set α} {f : α → β} {b : β} (h : ∃ a ∈ s, f a = b)
Goal: Function.invFunOn f s b ∈ s ∧ f (Function.invFunOn f s b) = b
-- Function.invFunOn_mem
theorem invFunOn_mem (h : ∃ a ∈ s, f a = b) : invFunOn f s b ∈ s 
Arguments: {α : Type u_1} {β : Type u_2} [Nonempty α] {s : Set α} {f : α → β} {b : β} (h : ∃ a ∈ s, f a = b)
Goal: Function.invFunOn f s b ∈ s
-- Function.invFunOn_eq
theorem invFunOn_eq (h : ∃ a ∈ s, f a = b) : f (invFunOn f s b) = b 
Arguments: {α : Type u_1} {β : Type u_2} [Nonempty α] {s : Set α} {f : α → β} {b : β} (h : ∃ a ∈ s, f a = b)
Goal: f (Function.invFunOn f s b) = b
-- Function.invFunOn_neg
theorem invFunOn_neg (h : ¬∃ a ∈ s, f a = b) : invFunOn f s b = Classical.choice ‹Nonempty α› 
Arguments: {α : Type u_1} {β : Type u_2} [Nonempty α] {s : Set α} {f : α → β} {b : β} (h : ¬∃ a ∈ s, f a = b)
Goal: Function.invFunOn f s b = Classical.choice inst✝
-- Function.invFunOn_apply_mem
@[simp]
theorem invFunOn_apply_mem (h : a ∈ s) : invFunOn f s (f a) ∈ s 
Arguments: {α : Type u_1} {β : Type u_2} [Nonempty α] {s : Set α} {f : α → β} {a : α} (h : a ∈ s)
Goal: Function.invFunOn f s (f a) ∈ s
-- Function.invFunOn_apply_eq
theorem invFunOn_apply_eq (h : a ∈ s) : f (invFunOn f s (f a)) = f a 
Arguments: {α : Type u_1} {β : Type u_2} [Nonempty α] {s : Set α} {f : α → β} {a : α} (h : a ∈ s)
Goal: f (Function.invFunOn f s (f a)) = f a
-- Set.InjOn.leftInvOn_invFunOn
theorem InjOn.leftInvOn_invFunOn [Nonempty α] (h : InjOn f s) : LeftInvOn (invFunOn f s) f s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} [Nonempty α] (h : Set.InjOn f s)
Goal: Set.LeftInvOn (Function.invFunOn f s) f s
-- Set.InjOn.invFunOn_image
theorem InjOn.invFunOn_image [Nonempty α] (h : InjOn f s₂) (ht : s₁ ⊆ s₂) :
    invFunOn f s₂ '' (f '' s₁) = s₁ 
Arguments: {α : Type u_1} {β : Type u_2} {s₁ s₂ : Set α} {f : α → β} [Nonempty α] (h : Set.InjOn f s₂) (ht : s₁ ⊆ s₂)
Goal: Function.invFunOn f s₂ '' (f '' s₁) = s₁
-- Function.leftInvOn_invFunOn_of_subset_image_image
theorem _root_.Function.leftInvOn_invFunOn_of_subset_image_image [Nonempty α]
    (h : s ⊆ (invFunOn f s) '' (f '' s)) : LeftInvOn (invFunOn f s) f s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} [Nonempty α] (h : s ⊆ Function.invFunOn f s '' (f '' s))
Goal: Set.LeftInvOn (Function.invFunOn f s) f s
-- Set.injOn_iff_invFunOn_image_image_eq_self
theorem injOn_iff_invFunOn_image_image_eq_self [Nonempty α] :
    InjOn f s ↔ (invFunOn f s) '' (f '' s) = s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} [Nonempty α]
Goal: Set.InjOn f s ↔ Function.invFunOn f s '' (f '' s) = s
-- Function.invFunOn_injOn_image
theorem _root_.Function.invFunOn_injOn_image [Nonempty α] (f : α → β) (s : Set α) :
    Set.InjOn (invFunOn f s) (f '' s) 
Arguments: {α : Type u_1} {β : Type u_2} [Nonempty α] (f : α → β) (s : Set α)
Goal: Set.InjOn (Function.invFunOn f s) (f '' s)
-- Function.invFunOn_image_image_subset
theorem _root_.Function.invFunOn_image_image_subset [Nonempty α] (f : α → β) (s : Set α) :
    (invFunOn f s) '' (f '' s) ⊆ s 
Arguments: {α : Type u_1} {β : Type u_2} [Nonempty α] (f : α → β) (s : Set α)
Goal: Function.invFunOn f s '' (f '' s) ⊆ s
-- Set.SurjOn.rightInvOn_invFunOn
theorem SurjOn.rightInvOn_invFunOn [Nonempty α] (h : SurjOn f s t) :
    RightInvOn (invFunOn f s) f t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} [Nonempty α] (h : Set.SurjOn f s t)
Goal: Set.RightInvOn (Function.invFunOn f s) f t
-- Set.BijOn.invOn_invFunOn
theorem BijOn.invOn_invFunOn [Nonempty α] (h : BijOn f s t) : InvOn (invFunOn f s) f s t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} [Nonempty α] (h : Set.BijOn f s t)
Goal: Set.InvOn (Function.invFunOn f s) f s t
-- Set.SurjOn.invOn_invFunOn
theorem SurjOn.invOn_invFunOn [Nonempty α] (h : SurjOn f s t) :
    InvOn (invFunOn f s) f (invFunOn f s '' t) t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} [Nonempty α] (h : Set.SurjOn f s t)
Goal: Set.InvOn (Function.invFunOn f s) f (Function.invFunOn f s '' t) t
-- Set.SurjOn.mapsTo_invFunOn
theorem SurjOn.mapsTo_invFunOn [Nonempty α] (h : SurjOn f s t) : MapsTo (invFunOn f s) t s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} [Nonempty α] (h : Set.SurjOn f s t)
Goal: Set.MapsTo (Function.invFunOn f s) t s
-- Set.SurjOn.image_invFunOn_image_of_subset
theorem SurjOn.image_invFunOn_image_of_subset [Nonempty α] {r : Set β} (hf : SurjOn f s t)
    (hrt : r ⊆ t) : f '' (f.invFunOn s '' r) = r 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} [Nonempty α] {r : Set β} (hf : Set.SurjOn f s t) (hrt : r ⊆ t)
Goal: f '' (Function.invFunOn f s '' r) = r
-- Set.SurjOn.image_invFunOn_image
theorem SurjOn.image_invFunOn_image [Nonempty α] (hf : SurjOn f s t) :
    f '' (f.invFunOn s '' t) = t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} [Nonempty α] (hf : Set.SurjOn f s t)
Goal: f '' (Function.invFunOn f s '' t) = t
-- Set.SurjOn.bijOn_subset
theorem SurjOn.bijOn_subset [Nonempty α] (h : SurjOn f s t) : BijOn f (invFunOn f s '' t) t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} [Nonempty α] (h : Set.SurjOn f s t)
Goal: Set.BijOn f (Function.invFunOn f s '' t) t
-- Set.surjOn_iff_exists_bijOn_subset
theorem surjOn_iff_exists_bijOn_subset : SurjOn f s t ↔ ∃ s' ⊆ s, BijOn f s' t 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β}
Goal: Set.SurjOn f s t ↔ ∃ s' ⊆ s, Set.BijOn f s' t
-- Set.exists_subset_bijOn
lemma exists_subset_bijOn : ∃ s' ⊆ s, BijOn f s' (f '' s) 
Arguments: {α : Type u_1} {β : Type u_2} (s : Set α) (f : α → β)
Goal: ∃ s' ⊆ s, Set.BijOn f s' (f '' s)
-- Set.exists_image_eq_and_injOn
lemma exists_image_eq_and_injOn : ∃ u, f '' u =  f '' s ∧ InjOn f u 
Arguments: {α : Type u_1} {β : Type u_2} (s : Set α) (f : α → β)
Goal: ∃ u, f '' u = f '' s ∧ Set.InjOn f u
-- Set.exists_image_eq_injOn_of_subset_range
lemma exists_image_eq_injOn_of_subset_range (ht : t ⊆ range f) :
    ∃ s, f '' s = t ∧ InjOn f s 
Arguments: {α : Type u_1} {β : Type u_2} {t : Set β} {f : α → β} (ht : t ⊆ Set.range f)
Goal: ∃ s, f '' s = t ∧ Set.InjOn f s
-- Set.BijOn.exists_extend_of_subset
theorem BijOn.exists_extend_of_subset {t' : Set β} (h : BijOn f s t) (hss₁ : s ⊆ s₁) (htt' : t ⊆ t')
    (ht' : SurjOn f s₁ t') : ∃ s', s ⊆ s' ∧ s' ⊆ s₁ ∧ Set.BijOn f s' t' 
Arguments: {α : Type u_1} {β : Type u_2} {s s₁ : Set α} {t : Set β} {f : α → β} {t' : Set β} (h : Set.BijOn f s t) (hss₁ : s ⊆ s₁) (htt' : t ⊆ t') (ht' : Set.SurjOn f s₁ t')
Goal: ∃ s', s ⊆ s' ∧ s' ⊆ s₁ ∧ Set.BijOn f s' t'
-- Set.BijOn.exists_extend
theorem BijOn.exists_extend {t' : Set β} (h : BijOn f s t) (htt' : t ⊆ t') (ht' : t' ⊆ range f) :
    ∃ s', s ⊆ s' ∧ BijOn f s' t' 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {t' : Set β} (h : Set.BijOn f s t) (htt' : t ⊆ t') (ht' : t' ⊆ Set.range f)
Goal: ∃ s', s ⊆ s' ∧ Set.BijOn f s' t'
-- Set.InjOn.exists_subset_injOn_subset_range_eq
theorem InjOn.exists_subset_injOn_subset_range_eq {r : Set α} (hinj : InjOn f r) (hrs : r ⊆ s) :
    ∃ u : Set α, r ⊆ u ∧ u ⊆ s ∧ f '' u = f '' s ∧ InjOn f u 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {f : α → β} {r : Set α} (hinj : Set.InjOn f r) (hrs : r ⊆ s)
Goal: ∃ u, r ⊆ u ∧ u ⊆ s ∧ f '' u = f '' s ∧ Set.InjOn f u
-- Set.preimage_invFun_of_mem
theorem preimage_invFun_of_mem [n : Nonempty α] {f : α → β} (hf : Injective f) {s : Set α}
    (h : Classical.choice n ∈ s) : invFun f ⁻¹' s = f '' s ∪ (range f)ᶜ 
Arguments: {α : Type u_1} {β : Type u_2} [n : Nonempty α] {f : α → β} (hf : Function.Injective f) {s : Set α} (h : Classical.choice n ∈ s)
Goal: Function.invFun f ⁻¹' s = f '' s ∪ (Set.range f)ᶜ
-- Set.preimage_invFun_of_not_mem
theorem preimage_invFun_of_not_mem [n : Nonempty α] {f : α → β} (hf : Injective f) {s : Set α}
    (h : Classical.choice n ∉ s) : invFun f ⁻¹' s = f '' s 
Arguments: {α : Type u_1} {β : Type u_2} [n : Nonempty α] {f : α → β} (hf : Function.Injective f) {s : Set α} (h : Classical.choice n ∉ s)
Goal: Function.invFun f ⁻¹' s = f '' s
-- Set.BijOn.symm
lemma BijOn.symm {g : β → α} (h : InvOn f g t s) (hf : BijOn f s t) : BijOn g t s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {g : β → α} (h : Set.InvOn f g t s) (hf : Set.BijOn f s t)
Goal: Set.BijOn g t s
-- Set.bijOn_comm
lemma bijOn_comm {g : β → α} (h : InvOn f g t s) : BijOn f s t ↔ BijOn g t s 
Arguments: {α : Type u_1} {β : Type u_2} {s : Set α} {t : Set β} {f : α → β} {g : β → α} (h : Set.InvOn f g t s)
Goal: Set.BijOn f s t ↔ Set.BijOn g t s
-- Monotone.restrict
protected theorem restrict (h : Monotone f) (s : Set α) : Monotone (s.restrict f) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f : α → β} (h : Monotone f) (s : Set α)
Goal: Monotone (s.restrict f)
-- Monotone.codRestrict
protected theorem codRestrict (h : Monotone f) {s : Set β} (hs : ∀ x, f x ∈ s) :
    Monotone (s.codRestrict f hs) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f : α → β} (h : Monotone f) {s : Set β} (hs : ∀ (x : α), f x ∈ s)
Goal: Monotone (Set.codRestrict f s hs)
-- Monotone.rangeFactorization
protected theorem rangeFactorization (h : Monotone f) : Monotone (Set.rangeFactorization f) 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] {f : α → β} (h : Monotone f)
Goal: Monotone (Set.rangeFactorization f)
-- Set.piecewise_empty
@[simp]
theorem piecewise_empty [∀ i : α, Decidable (i ∈ (∅ : Set α))] : piecewise ∅ f g = g 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (f g : (i : α) → δ i) [(i : α) → Decidable (i ∈ ∅)]
Goal: ∅.piecewise f g = g
-- Set.piecewise_univ
@[simp]
theorem piecewise_univ [∀ i : α, Decidable (i ∈ (Set.univ : Set α))] :
    piecewise Set.univ f g = f 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (f g : (i : α) → δ i) [(i : α) → Decidable (i ∈ Set.univ)]
Goal: Set.univ.piecewise f g = f
-- Set.piecewise_insert_self
theorem piecewise_insert_self {j : α} [∀ i, Decidable (i ∈ insert j s)] :
    (insert j s).piecewise f g j = f j 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (s : Set α) (f g : (i : α) → δ i) {j : α} [(i : α) → Decidable (i ∈ insert j s)]
Goal: (insert j s).piecewise f g j = f j
-- Set.piecewise_insert
theorem piecewise_insert [DecidableEq α] (j : α) [∀ i, Decidable (i ∈ insert j s)] :
    (insert j s).piecewise f g = Function.update (s.piecewise f g) j (f j) 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (s : Set α) (f g : (i : α) → δ i) [(j : α) → Decidable (j ∈ s)] [DecidableEq α] (j : α) [(i : α) → Decidable (i ∈ insert j s)]
Goal: (insert j s).piecewise f g = Function.update (s.piecewise f g) j (f j)
-- Set.piecewise_eq_of_mem
@[simp]
theorem piecewise_eq_of_mem {i : α} (hi : i ∈ s) : s.piecewise f g i = f i 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (s : Set α) (f g : (i : α) → δ i) [(j : α) → Decidable (j ∈ s)] {i : α} (hi : i ∈ s)
Goal: s.piecewise f g i = f i
-- Set.piecewise_eq_of_not_mem
@[simp]
theorem piecewise_eq_of_not_mem {i : α} (hi : i ∉ s) : s.piecewise f g i = g i 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (s : Set α) (f g : (i : α) → δ i) [(j : α) → Decidable (j ∈ s)] {i : α} (hi : i ∉ s)
Goal: s.piecewise f g i = g i
-- Set.piecewise_singleton
theorem piecewise_singleton (x : α) [∀ y, Decidable (y ∈ ({x} : Set α))] [DecidableEq α]
    (f g : α → β) : piecewise {x} f g = Function.update g x (f x) 
Arguments: {α : Type u_1} {β : Type u_2} (x : α) [(y : α) → Decidable (y ∈ {x})] [DecidableEq α] (f g : α → β)
Goal: {x}.piecewise f g = Function.update g x (f x)
-- Set.piecewise_eqOn
theorem piecewise_eqOn (f g : α → β) : EqOn (s.piecewise f g) f s 
Arguments: {α : Type u_1} {β : Type u_2} (s : Set α) [(j : α) → Decidable (j ∈ s)] (f g : α → β)
Goal: Set.EqOn (s.piecewise f g) f s
-- Set.piecewise_eqOn_compl
theorem piecewise_eqOn_compl (f g : α → β) : EqOn (s.piecewise f g) g sᶜ 
Arguments: {α : Type u_1} {β : Type u_2} (s : Set α) [(j : α) → Decidable (j ∈ s)] (f g : α → β)
Goal: Set.EqOn (s.piecewise f g) g sᶜ
-- Set.piecewise_le
theorem piecewise_le {δ : α → Type*} [∀ i, Preorder (δ i)] {s : Set α} [∀ j, Decidable (j ∈ s)]
    {f₁ f₂ g : ∀ i, δ i} (h₁ : ∀ i ∈ s, f₁ i ≤ g i) (h₂ : ∀ i ∉ s, f₂ i ≤ g i) :
    s.piecewise f₁ f₂ ≤ g 
Arguments: {α : Type u_1} {δ : α → Type u_7} [(i : α) → Preorder (δ i)] {s : Set α} [(j : α) → Decidable (j ∈ s)] {f₁ f₂ g : (i : α) → δ i} (h₁ : ∀ i ∈ s, f₁ i ≤ g i) (h₂ : ∀ i ∉ s, f₂ i ≤ g i)
Goal: s.piecewise f₁ f₂ ≤ g
-- Set.le_piecewise
theorem le_piecewise {δ : α → Type*} [∀ i, Preorder (δ i)] {s : Set α} [∀ j, Decidable (j ∈ s)]
    {f₁ f₂ g : ∀ i, δ i} (h₁ : ∀ i ∈ s, g i ≤ f₁ i) (h₂ : ∀ i ∉ s, g i ≤ f₂ i) :
    g ≤ s.piecewise f₁ f₂ 
Arguments: {α : Type u_1} {δ : α → Type u_7} [(i : α) → Preorder (δ i)] {s : Set α} [(j : α) → Decidable (j ∈ s)] {f₁ f₂ g : (i : α) → δ i} (h₁ : ∀ i ∈ s, g i ≤ f₁ i) (h₂ : ∀ i ∉ s, g i ≤ f₂ i)
Goal: g ≤ s.piecewise f₁ f₂
-- Set.piecewise_le_piecewise
theorem piecewise_le_piecewise {δ : α → Type*} [∀ i, Preorder (δ i)] {s : Set α}
    [∀ j, Decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : ∀ i, δ i} (h₁ : ∀ i ∈ s, f₁ i ≤ g₁ i)
    (h₂ : ∀ i ∉ s, f₂ i ≤ g₂ i) : s.piecewise f₁ f₂ ≤ s.piecewise g₁ g₂ 
Arguments: {α : Type u_1} {δ : α → Type u_7} [(i : α) → Preorder (δ i)] {s : Set α} [(j : α) → Decidable (j ∈ s)] {f₁ f₂ g₁ g₂ : (i : α) → δ i} (h₁ : ∀ i ∈ s, f₁ i ≤ g₁ i) (h₂ : ∀ i ∉ s, f₂ i ≤ g₂ i)
Goal: s.piecewise f₁ f₂ ≤ s.piecewise g₁ g₂
-- Set.piecewise_insert_of_ne
@[simp]
theorem piecewise_insert_of_ne {i j : α} (h : i ≠ j) [∀ i, Decidable (i ∈ insert j s)] :
    (insert j s).piecewise f g i = s.piecewise f g i 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (s : Set α) (f g : (i : α) → δ i) [(j : α) → Decidable (j ∈ s)] {i j : α} (h : i ≠ j) [(i : α) → Decidable (i ∈ insert j s)]
Goal: (insert j s).piecewise f g i = s.piecewise f g i
-- Set.piecewise_compl
@[simp]
theorem piecewise_compl [∀ i, Decidable (i ∈ sᶜ)] : sᶜ.piecewise f g = s.piecewise g f 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (s : Set α) (f g : (i : α) → δ i) [(j : α) → Decidable (j ∈ s)] [(i : α) → Decidable (i ∈ sᶜ)]
Goal: sᶜ.piecewise f g = s.piecewise g f
-- Set.piecewise_range_comp
@[simp]
theorem piecewise_range_comp {ι : Sort*} (f : ι → α) [∀ j, Decidable (j ∈ range f)]
    (g₁ g₂ : α → β) : (range f).piecewise g₁ g₂ ∘ f = g₁ ∘ f 
Arguments: {α : Type u_1} {β : Type u_2} {ι : Sort u_7} (f : ι → α) [(j : α) → Decidable (j ∈ Set.range f)] (g₁ g₂ : α → β)
Goal: (Set.range f).piecewise g₁ g₂ ∘ f = g₁ ∘ f
-- Set.MapsTo.piecewise_ite
theorem MapsTo.piecewise_ite {s s₁ s₂ : Set α} {t t₁ t₂ : Set β} {f₁ f₂ : α → β}
    [∀ i, Decidable (i ∈ s)] (h₁ : MapsTo f₁ (s₁ ∩ s) (t₁ ∩ t))
    (h₂ : MapsTo f₂ (s₂ ∩ sᶜ) (t₂ ∩ tᶜ)) :
    MapsTo (s.piecewise f₁ f₂) (s.ite s₁ s₂) (t.ite t₁ t₂) 
Arguments: {α : Type u_1} {β : Type u_2} {s s₁ s₂ : Set α} {t t₁ t₂ : Set β} {f₁ f₂ : α → β} [(i : α) → Decidable (i ∈ s)] (h₁ : Set.MapsTo f₁ (s₁ ∩ s) (t₁ ∩ t)) (h₂ : Set.MapsTo f₂ (s₂ ∩ sᶜ) (t₂ ∩ tᶜ))
Goal: Set.MapsTo (s.piecewise f₁ f₂) (s.ite s₁ s₂) (t.ite t₁ t₂)
-- Set.eqOn_piecewise
theorem eqOn_piecewise {f f' g : α → β} {t} :
    EqOn (s.piecewise f f') g t ↔ EqOn f g (t ∩ s) ∧ EqOn f' g (t ∩ sᶜ) 
Arguments: {α : Type u_1} {β : Type u_2} (s : Set α) [(j : α) → Decidable (j ∈ s)] {f f' g : α → β} {t : Set α}
Goal: Set.EqOn (s.piecewise f f') g t ↔ Set.EqOn f g (t ∩ s) ∧ Set.EqOn f' g (t ∩ sᶜ)
-- Set.EqOn.piecewise_ite'
theorem EqOn.piecewise_ite' {f f' g : α → β} {t t'} (h : EqOn f g (t ∩ s))
    (h' : EqOn f' g (t' ∩ sᶜ)) : EqOn (s.piecewise f f') g (s.ite t t') 
Arguments: {α : Type u_1} {β : Type u_2} (s : Set α) [(j : α) → Decidable (j ∈ s)] {f f' g : α → β} {t t' : Set α} (h : Set.EqOn f g (t ∩ s)) (h' : Set.EqOn f' g (t' ∩ sᶜ))
Goal: Set.EqOn (s.piecewise f f') g (s.ite t t')
-- Set.EqOn.piecewise_ite
theorem EqOn.piecewise_ite {f f' g : α → β} {t t'} (h : EqOn f g t) (h' : EqOn f' g t') :
    EqOn (s.piecewise f f') g (s.ite t t') 
Arguments: {α : Type u_1} {β : Type u_2} (s : Set α) [(j : α) → Decidable (j ∈ s)] {f f' g : α → β} {t t' : Set α} (h : Set.EqOn f g t) (h' : Set.EqOn f' g t')
Goal: Set.EqOn (s.piecewise f f') g (s.ite t t')
-- Set.piecewise_preimage
theorem piecewise_preimage (f g : α → β) (t) : s.piecewise f g ⁻¹' t = s.ite (f ⁻¹' t) (g ⁻¹' t) 
Arguments: {α : Type u_1} {β : Type u_2} (s : Set α) [(j : α) → Decidable (j ∈ s)] (f g : α → β) (t : Set β)
Goal: s.piecewise f g ⁻¹' t = s.ite (f ⁻¹' t) (g ⁻¹' t)
-- Set.apply_piecewise
theorem apply_piecewise {δ' : α → Sort*} (h : ∀ i, δ i → δ' i) {x : α} :
    h x (s.piecewise f g x) = s.piecewise (fun x => h x (f x)) (fun x => h x (g x)) x 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (s : Set α) (f g : (i : α) → δ i) [(j : α) → Decidable (j ∈ s)] {δ' : α → Sort u_7} (h : (i : α) → δ i → δ' i) {x : α}
Goal: h x (s.piecewise f g x) = s.piecewise (fun x => h x (f x)) (fun x => h x (g x)) x
-- Set.apply_piecewise₂
theorem apply_piecewise₂ {δ' δ'' : α → Sort*} (f' g' : ∀ i, δ' i) (h : ∀ i, δ i → δ' i → δ'' i)
    {x : α} :
    h x (s.piecewise f g x) (s.piecewise f' g' x) =
      s.piecewise (fun x => h x (f x) (f' x)) (fun x => h x (g x) (g' x)) x 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (s : Set α) (f g : (i : α) → δ i) [(j : α) → Decidable (j ∈ s)] {δ' : α → Sort u_7} {δ'' : α → Sort u_8} (f' g' : (i : α) → δ' i) (h : (i : α) → δ i → δ' i → δ'' i) {x : α}
Goal: h x (s.piecewise f g x) (s.piecewise f' g' x) = s.piecewise (fun x => h x (f x) (f' x)) (fun x => h x (g x) (g' x)) x
-- Set.piecewise_op
theorem piecewise_op {δ' : α → Sort*} (h : ∀ i, δ i → δ' i) :
    (s.piecewise (fun x => h x (f x)) fun x => h x (g x)) = fun x => h x (s.piecewise f g x) 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (s : Set α) (f g : (i : α) → δ i) [(j : α) → Decidable (j ∈ s)] {δ' : α → Sort u_7} (h : (i : α) → δ i → δ' i)
Goal: (s.piecewise (fun x => h x (f x)) fun x => h x (g x)) = fun x => h x (s.piecewise f g x)
-- Set.piecewise_op₂
theorem piecewise_op₂ {δ' δ'' : α → Sort*} (f' g' : ∀ i, δ' i) (h : ∀ i, δ i → δ' i → δ'' i) :
    (s.piecewise (fun x => h x (f x) (f' x)) fun x => h x (g x) (g' x)) = fun x =>
      h x (s.piecewise f g x) (s.piecewise f' g' x) 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (s : Set α) (f g : (i : α) → δ i) [(j : α) → Decidable (j ∈ s)] {δ' : α → Sort u_7} {δ'' : α → Sort u_8} (f' g' : (i : α) → δ' i) (h : (i : α) → δ i → δ' i → δ'' i)
Goal: (s.piecewise (fun x => h x (f x) (f' x)) fun x => h x (g x) (g' x)) = fun x =>
  h x (s.piecewise f g x) (s.piecewise f' g' x)
-- Set.piecewise_same
@[simp]
theorem piecewise_same : s.piecewise f f = f 
Arguments: {α : Type u_1} {δ : α → Sort u_6} (s : Set α) (f : (i : α) → δ i) [(j : α) → Decidable (j ∈ s)]
Goal: s.piecewise f f = f
-- Set.range_piecewise
theorem range_piecewise (f g : α → β) : range (s.piecewise f g) = f '' s ∪ g '' sᶜ 
Arguments: {α : Type u_1} {β : Type u_2} (s : Set α) [(j : α) → Decidable (j ∈ s)] (f g : α → β)
Goal: Set.range (s.piecewise f g) = f '' s ∪ g '' sᶜ