ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Function.FromTypes.curry_apply_cons
@[simp]
theorem curry_apply_cons {n : ℕ} {α} {p : Fin n → Type u} {τ : Type u}
    (f : ((i : Fin (n + 1)) → (vecCons α p) i) → τ) (a : α) :
    curry f a = @curry _ p _ (f ∘' Fin.cons a) 
Arguments: {n : ℕ} {α : Type u} {p : Fin n → Type u} {τ : Type u} (f : ((i : Fin (n + 1)) → Matrix.vecCons α p i) → τ) (a : α)
Goal: Function.FromTypes.curry f a = Function.FromTypes.curry ((fun {x} => f) ∘' Fin.cons a)
-- Function.FromTypes.curry_apply_succ
@[simp low]
theorem curry_apply_succ {n : ℕ} {p : Fin (n + 1) → Type u} {τ : Type u}
    (f : ((i : Fin (n + 1)) → p i) → τ) (a : p 0) :
    curry f a = curry (f ∘ Fin.cons a) 
Arguments: {n : ℕ} {p : Fin (n + 1) → Type u} {τ : Type u} (f : ((i : Fin (n + 1)) → p i) → τ) (a : p 0)
Goal: Function.FromTypes.curry f a = Function.FromTypes.curry (f ∘ Fin.cons a)
-- Function.FromTypes.curry_uncurry
@[simp]
theorem curry_uncurry (f : Function.FromTypes p τ) : curry (uncurry f) = f 
Arguments: {n : ℕ} {p : Fin n → Type u} {τ : Type u} (f : Function.FromTypes p τ)
Goal: Function.FromTypes.curry f.uncurry = f
-- Function.FromTypes.uncurry_curry
@[simp]
theorem uncurry_curry (f : ((i : Fin n) → p i) → τ) :
    uncurry (curry f) = f 
Arguments: {n : ℕ} {p : Fin n → Type u} {τ : Type u} (f : ((i : Fin n) → p i) → τ)
Goal: (Function.FromTypes.curry f).uncurry = f
-- Function.FromTypes.curryEquiv_symm_apply
@[simps]
def curryEquiv (p : Fin n → Type u) : (((i : Fin n) → p i) → τ) ≃ FromTypes p τ 
Arguments: {n : ℕ} {τ : Type u} (p : Fin n → Type u) (f : Function.FromTypes p τ)
Goal: ∀ (a : (i : Fin n) → p i), (Function.FromTypes.curryEquiv p).symm f a = f.uncurry a
-- Function.FromTypes.curryEquiv_apply
@[simps]
def curryEquiv (p : Fin n → Type u) : (((i : Fin n) → p i) → τ) ≃ FromTypes p τ 
Arguments: {n : ℕ} {τ : Type u} (p : Fin n → Type u)
Goal: ∀ (a : ((i : Fin n) → p i) → τ), (Function.FromTypes.curryEquiv p) a = Function.FromTypes.curry a
-- Function.FromTypes.curry_two_eq_curry
lemma curry_two_eq_curry {p : Fin 2 → Type u} {τ : Type u}
    (f : ((i : Fin 2) → p i) → τ) :
    curry f = Function.curry (f ∘ (piFinTwoEquiv p).symm) 
Arguments: {p : Fin 2 → Type u} {τ : Type u} (f : ((i : Fin 2) → p i) → τ)
Goal: Function.FromTypes.curry f = Function.curry (f ∘ ⇑(piFinTwoEquiv p).symm)
-- Function.FromTypes.uncurry_two_eq_uncurry
lemma uncurry_two_eq_uncurry (p : Fin 2 → Type u) (τ : Type u)
    (f : Function.FromTypes p τ) :
    uncurry f = Function.uncurry f ∘ piFinTwoEquiv p 
Arguments: (p : Fin 2 → Type u) (τ : Type u) (f : Function.FromTypes p τ)
Goal: f.uncurry = Function.uncurry f ∘ ⇑(piFinTwoEquiv p)
-- Function.OfArity.curry_uncurry
@[simp]
theorem curry_uncurry {n} (f : Function.OfArity α β n) :
    curry (uncurry f) = f 
Arguments: {α β : Type u} {n : ℕ} (f : Function.OfArity α β n)
Goal: Function.OfArity.curry f.uncurry = f
-- Function.OfArity.uncurry_curry
@[simp]
theorem uncurry_curry {n} (f : (Fin n → α) → β) :
    uncurry (curry f) = f 
Arguments: {α β : Type u} {n : ℕ} (f : (Fin n → α) → β)
Goal: (Function.OfArity.curry f).uncurry = f
-- Function.OfArity.curryEquiv_symm_apply
@[simps!]
def curryEquiv (n : ℕ) : ((Fin n → α) → β) ≃ OfArity α β n 
Arguments: {α β : Type u} (n : ℕ) (f : Function.FromTypes (fun a => α) β)
Goal: ∀ (a : Fin n → α), (Function.OfArity.curryEquiv n).symm f a = f.uncurry a
-- Function.OfArity.curryEquiv_apply
@[simps!]
def curryEquiv (n : ℕ) : ((Fin n → α) → β) ≃ OfArity α β n 
Arguments: {α β : Type u} (n : ℕ)
Goal: ∀ (a : (Fin n → α) → β), (Function.OfArity.curryEquiv n) a = Function.FromTypes.curry a
-- Function.OfArity.curry_two_eq_curry
lemma curry_two_eq_curry {α β : Type u} (f : ((i : Fin 2) → α) → β) :
    curry f = Function.curry (f ∘ (finTwoArrowEquiv α).symm) 
Arguments: {α β : Type u} (f : (Fin 2 → α) → β)
Goal: Function.OfArity.curry f = Function.curry (f ∘ ⇑(finTwoArrowEquiv α).symm)
-- Function.OfArity.uncurry_two_eq_uncurry
lemma uncurry_two_eq_uncurry {α β : Type u} (f : OfArity α β 2) :
    uncurry f = Function.uncurry f ∘ (finTwoArrowEquiv α) 
Arguments: {α β : Type u} (f : Function.OfArity α β 2)
Goal: f.uncurry = Function.uncurry f ∘ ⇑(finTwoArrowEquiv α)
-- Finite.Set.finite_of_finite_image
theorem Finite.Set.finite_of_finite_image (s : Set α) {f : α → β} (h : s.InjOn f)
    [Finite (f '' s)] : Finite s 
Arguments: {α : Type u} {β : Type v} (s : Set α) {f : α → β} (h : Set.InjOn f s) [Finite ↑(f '' s)]
Goal: Finite ↑s
-- Finite.of_injective_finite_range
theorem Finite.of_injective_finite_range {f : ι → α} (hf : Function.Injective f)
    [Finite (range f)] : Finite ι 
Arguments: {α : Type u} {ι : Sort w} {f : ι → α} (hf : Function.Injective f) [Finite ↑(Set.range f)]
Goal: Finite ι
-- finite_iff_exists_equiv_fin
theorem finite_iff_exists_equiv_fin {α : Sort*} : Finite α ↔ ∃ n, Nonempty (α ≃ Fin n) 
Arguments: {α : Sort u_3}
Goal: Finite α ↔ ∃ n, Nonempty (α ≃ Fin n)
-- Finite.exists_equiv_fin
theorem Finite.exists_equiv_fin (α : Sort*) [h : Finite α] : ∃ n : ℕ, Nonempty (α ≃ Fin n) 
Arguments: (α : Sort u_3) [h : Finite α]
Goal: ∃ n, Nonempty (α ≃ Fin n)
-- Finite.of_equiv
theorem Finite.of_equiv (α : Sort*) [h : Finite α] (f : α ≃ β) : Finite β 
Arguments: {β : Sort u_2} (α : Sort u_3) [h : Finite α] (f : α ≃ β)
Goal: Finite β
-- Equiv.finite_iff
theorem Equiv.finite_iff (f : α ≃ β) : Finite α ↔ Finite β 
Arguments: {α : Sort u_1} {β : Sort u_2} (f : α ≃ β)
Goal: Finite α ↔ Finite β
-- Function.Bijective.finite_iff
theorem Function.Bijective.finite_iff {f : α → β} (h : Bijective f) : Finite α ↔ Finite β 
Arguments: {α : Sort u_1} {β : Sort u_2} {f : α → β} (h : Function.Bijective f)
Goal: Finite α ↔ Finite β
-- Finite.ofBijective
theorem Finite.ofBijective [Finite α] {f : α → β} (h : Bijective f) : Finite β 
Arguments: {α : Sort u_1} {β : Sort u_2} [Finite α] {f : α → β} (h : Function.Bijective f)
Goal: Finite β
-- Infinite.not_finite
class Infinite (α : Sort*) : Prop where
    not_finite : ¬Finite α
Arguments: {α : Sort u_3} [self : Infinite α]
Goal: ¬Finite α
-- not_finite_iff_infinite
@[simp]
theorem not_finite_iff_infinite : ¬Finite α ↔ Infinite α 
Arguments: {α : Sort u_1}
Goal: ¬Finite α ↔ Infinite α
-- not_infinite_iff_finite
@[simp]
theorem not_infinite_iff_finite : ¬Infinite α ↔ Finite α 
Arguments: {α : Sort u_1}
Goal: ¬Infinite α ↔ Finite α
-- Equiv.infinite_iff
theorem Equiv.infinite_iff (e : α ≃ β) : Infinite α ↔ Infinite β 
Arguments: {α : Sort u_1} {β : Sort u_2} (e : α ≃ β)
Goal: Infinite α ↔ Infinite β
-- finite_or_infinite
theorem finite_or_infinite (α : Sort*) : Finite α ∨ Infinite α 
Arguments: (α : Sort u_3)
Goal: Finite α ∨ Infinite α
-- not_finite
theorem not_finite (α : Sort*) [Infinite α] [Finite α] : False 
Arguments: (α : Sort u_3) [Infinite α] [Finite α]
Goal: False
-- Finite.false
protected theorem Finite.false [Infinite α] (_ : Finite α) : False 
Arguments: {α : Sort u_1} [Infinite α]
Goal: Finite α → False
-- Infinite.false
protected theorem Infinite.false [Finite α] (_ : Infinite α) : False 
Arguments: {α : Sort u_1} [Finite α]
Goal: Infinite α → False
-- Finite.prod_left
theorem prod_left (β) [Finite (α × β)] [Nonempty β] : Finite α 
Arguments: {α : Type u_1} (β : Type u_4) [Finite (α × β)] [Nonempty β]
Goal: Finite α
-- Finite.prod_right
theorem prod_right (α) [Finite (α × β)] [Nonempty α] : Finite β 
Arguments: {β : Type u_2} (α : Type u_4) [Finite (α × β)] [Nonempty α]
Goal: Finite β
-- Finite.sum_left
theorem sum_left (β) [Finite (α ⊕ β)] : Finite α 
Arguments: {α : Type u_1} (β : Type u_4) [Finite (α ⊕ β)]
Goal: Finite α
-- Finite.sum_right
theorem sum_right (α) [Finite (α ⊕ β)] : Finite β 
Arguments: {β : Type u_2} (α : Type u_4) [Finite (α ⊕ β)]
Goal: Finite β
-- Finset.mem_zero
@[to_additive (attr := simp)]
theorem mem_one : a ∈ (1 : Finset α) ↔ a = 1 
Arguments: {α : Type u_2} [Zero α] {a : α}
Goal: a ∈ 0 ↔ a = 0
-- Finset.mem_one
@[to_additive (attr := simp)]
theorem mem_one : a ∈ (1 : Finset α) ↔ a = 1 
Arguments: {α : Type u_2} [One α] {a : α}
Goal: a ∈ 1 ↔ a = 1
-- Finset.coe_one
@[to_additive (attr := simp, norm_cast)]
theorem coe_one : ↑(1 : Finset α) = (1 : Set α) 
Arguments: {α : Type u_2} [One α]
Goal: ↑1 = 1
-- Finset.coe_zero
@[to_additive (attr := simp, norm_cast)]
theorem coe_one : ↑(1 : Finset α) = (1 : Set α) 
Arguments: {α : Type u_2} [Zero α]
Goal: ↑0 = 0
-- Finset.coe_eq_one
@[to_additive (attr := simp, norm_cast)]
lemma coe_eq_one : (s : Set α) = 1 ↔ s = 1 
Arguments: {α : Type u_2} [One α] {s : Finset α}
Goal: ↑s = 1 ↔ s = 1
-- Finset.coe_eq_zero
@[to_additive (attr := simp, norm_cast)]
lemma coe_eq_one : (s : Set α) = 1 ↔ s = 1 
Arguments: {α : Type u_2} [Zero α] {s : Finset α}
Goal: ↑s = 0 ↔ s = 0
-- Finset.one_subset
@[to_additive (attr := simp)]
theorem one_subset : (1 : Finset α) ⊆ s ↔ (1 : α) ∈ s 
Arguments: {α : Type u_2} [One α] {s : Finset α}
Goal: 1 ⊆ s ↔ 1 ∈ s
-- Finset.zero_subset
@[to_additive (attr := simp)]
theorem one_subset : (1 : Finset α) ⊆ s ↔ (1 : α) ∈ s 
Arguments: {α : Type u_2} [Zero α] {s : Finset α}
Goal: 0 ⊆ s ↔ 0 ∈ s
-- Finset.singleton_one
@[to_additive]
theorem singleton_one : ({1} : Finset α) = 1 
Arguments: {α : Type u_2} [One α]
Goal: {1} = 1
-- Finset.singleton_zero
@[to_additive]
theorem singleton_one : ({1} : Finset α) = 1 
Arguments: {α : Type u_2} [Zero α]
Goal: {0} = 0
-- Finset.one_mem_one
@[to_additive]
theorem one_mem_one : (1 : α) ∈ (1 : Finset α) 
Arguments: {α : Type u_2} [One α]
Goal: 1 ∈ 1
-- Finset.zero_mem_zero
@[to_additive]
theorem one_mem_one : (1 : α) ∈ (1 : Finset α) 
Arguments: {α : Type u_2} [Zero α]
Goal: 0 ∈ 0
-- Finset.one_nonempty
@[to_additive (attr := simp, aesop safe apply (rule_sets := [finsetNonempty]))]
theorem one_nonempty : (1 : Finset α).Nonempty 
Arguments: {α : Type u_2} [One α]
Goal: Finset.Nonempty 1
-- Finset.zero_nonempty
@[to_additive (attr := simp, aesop safe apply (rule_sets := [finsetNonempty]))]
theorem one_nonempty : (1 : Finset α).Nonempty 
Arguments: {α : Type u_2} [Zero α]
Goal: Finset.Nonempty 0
-- Finset.map_zero
@[to_additive (attr := simp)]
protected theorem map_one {f : α ↪ β} : map f 1 = {f 1} 
Arguments: {α : Type u_2} {β : Type u_3} [Zero α] {f : α ↪ β}
Goal: Finset.map f 0 = {f 0}
-- Finset.map_one
@[to_additive (attr := simp)]
protected theorem map_one {f : α ↪ β} : map f 1 = {f 1} 
Arguments: {α : Type u_2} {β : Type u_3} [One α] {f : α ↪ β}
Goal: Finset.map f 1 = {f 1}
-- Finset.image_zero
@[to_additive (attr := simp)]
theorem image_one [DecidableEq β] {f : α → β} : image f 1 = {f 1} 
Arguments: {α : Type u_2} {β : Type u_3} [Zero α] [DecidableEq β] {f : α → β}
Goal: Finset.image f 0 = {f 0}
-- Finset.image_one
@[to_additive (attr := simp)]
theorem image_one [DecidableEq β] {f : α → β} : image f 1 = {f 1} 
Arguments: {α : Type u_2} {β : Type u_3} [One α] [DecidableEq β] {f : α → β}
Goal: Finset.image f 1 = {f 1}
-- Finset.subset_zero_iff_eq
@[to_additive]
theorem subset_one_iff_eq : s ⊆ 1 ↔ s = ∅ ∨ s = 1 
Arguments: {α : Type u_2} [Zero α] {s : Finset α}
Goal: s ⊆ 0 ↔ s = ∅ ∨ s = 0
-- Finset.subset_one_iff_eq
@[to_additive]
theorem subset_one_iff_eq : s ⊆ 1 ↔ s = ∅ ∨ s = 1 
Arguments: {α : Type u_2} [One α] {s : Finset α}
Goal: s ⊆ 1 ↔ s = ∅ ∨ s = 1
-- Finset.Nonempty.subset_one_iff
@[to_additive]
theorem Nonempty.subset_one_iff (h : s.Nonempty) : s ⊆ 1 ↔ s = 1 
Arguments: {α : Type u_2} [One α] {s : Finset α} (h : s.Nonempty)
Goal: s ⊆ 1 ↔ s = 1
-- Finset.Nonempty.subset_zero_iff
@[to_additive]
theorem Nonempty.subset_one_iff (h : s.Nonempty) : s ⊆ 1 ↔ s = 1 
Arguments: {α : Type u_2} [Zero α] {s : Finset α} (h : s.Nonempty)
Goal: s ⊆ 0 ↔ s = 0
-- Finset.card_one
@[to_additive (attr := simp)]
theorem card_one : (1 : Finset α).card = 1 
Arguments: {α : Type u_2} [One α]
Goal: Finset.card 1 = 1
-- Finset.card_zero
@[to_additive (attr := simp)]
theorem card_one : (1 : Finset α).card = 1 
Arguments: {α : Type u_2} [Zero α]
Goal: Finset.card 0 = 1
-- Finset.coe_singletonZeroHom
@[to_additive (attr := simp)]
theorem coe_singletonOneHom : (singletonOneHom : α → Finset α) = singleton 
Arguments: {α : Type u_2} [Zero α]
Goal: ⇑Finset.singletonZeroHom = singleton
-- Finset.coe_singletonOneHom
@[to_additive (attr := simp)]
theorem coe_singletonOneHom : (singletonOneHom : α → Finset α) = singleton 
Arguments: {α : Type u_2} [One α]
Goal: ⇑Finset.singletonOneHom = singleton
-- Finset.singletonOneHom_apply
@[to_additive (attr := simp)]
theorem singletonOneHom_apply (a : α) : singletonOneHom a = {a} 
Arguments: {α : Type u_2} [One α] (a : α)
Goal: Finset.singletonOneHom a = {a}
-- Finset.singletonZeroHom_apply
@[to_additive (attr := simp)]
theorem singletonOneHom_apply (a : α) : singletonOneHom a = {a} 
Arguments: {α : Type u_2} [Zero α] (a : α)
Goal: Finset.singletonZeroHom a = {a}
-- Finset.imageZeroHom_apply
@[to_additive (attr := simps) "Lift a `ZeroHom` to `Finset` via `image`"]
def imageOneHom [DecidableEq β] [One β] [FunLike F α β] [OneHomClass F α β] (f : F) :
    OneHom (Finset α) (Finset β) 
Arguments: {F : Type u_1} {α : Type u_2} {β : Type u_3} [Zero α] [DecidableEq β] [Zero β] [FunLike F α β] [ZeroHomClass F α β] (f : F) (s : Finset α)
Goal: (Finset.imageZeroHom f) s = Finset.image (⇑f) s
-- Finset.imageOneHom_apply
@[to_additive (attr := simps) "Lift a `ZeroHom` to `Finset` via `image`"]
def imageOneHom [DecidableEq β] [One β] [FunLike F α β] [OneHomClass F α β] (f : F) :
    OneHom (Finset α) (Finset β) 
Arguments: {F : Type u_1} {α : Type u_2} {β : Type u_3} [One α] [DecidableEq β] [One β] [FunLike F α β] [OneHomClass F α β] (f : F) (s : Finset α)
Goal: (Finset.imageOneHom f) s = Finset.image (⇑f) s
-- Finset.sup_one
@[to_additive (attr := simp)]
lemma sup_one [SemilatticeSup β] [OrderBot β] (f : α → β) : sup 1 f = f 1 
Arguments: {α : Type u_2} {β : Type u_3} [One α] [SemilatticeSup β] [OrderBot β] (f : α → β)
Goal: Finset.sup 1 f = f 1
-- Finset.sup_zero
@[to_additive (attr := simp)]
lemma sup_one [SemilatticeSup β] [OrderBot β] (f : α → β) : sup 1 f = f 1 
Arguments: {α : Type u_2} {β : Type u_3} [Zero α] [SemilatticeSup β] [OrderBot β] (f : α → β)
Goal: Finset.sup 0 f = f 0
-- Finset.sup'_one
@[to_additive (attr := simp)]
lemma sup'_one [SemilatticeSup β] (f : α → β) : sup' 1 one_nonempty f = f 1 
Arguments: {α : Type u_2} {β : Type u_3} [One α] [SemilatticeSup β] (f : α → β)
Goal: Finset.sup' 1 ⋯ f = f 1
-- Finset.sup'_zero
@[to_additive (attr := simp)]
lemma sup'_one [SemilatticeSup β] (f : α → β) : sup' 1 one_nonempty f = f 1 
Arguments: {α : Type u_2} {β : Type u_3} [Zero α] [SemilatticeSup β] (f : α → β)
Goal: Finset.sup' 0 ⋯ f = f 0
-- Finset.inf_zero
@[to_additive (attr := simp)]
lemma inf_one [SemilatticeInf β] [OrderTop β] (f : α → β) : inf 1 f = f 1 
Arguments: {α : Type u_2} {β : Type u_3} [Zero α] [SemilatticeInf β] [OrderTop β] (f : α → β)
Goal: Finset.inf 0 f = f 0
-- Finset.inf_one
@[to_additive (attr := simp)]
lemma inf_one [SemilatticeInf β] [OrderTop β] (f : α → β) : inf 1 f = f 1 
Arguments: {α : Type u_2} {β : Type u_3} [One α] [SemilatticeInf β] [OrderTop β] (f : α → β)
Goal: Finset.inf 1 f = f 1
-- Finset.inf'_one
@[to_additive (attr := simp)]
lemma inf'_one [SemilatticeInf β] (f : α → β) : inf' 1 one_nonempty f = f 1 
Arguments: {α : Type u_2} {β : Type u_3} [One α] [SemilatticeInf β] (f : α → β)
Goal: Finset.inf' 1 ⋯ f = f 1
-- Finset.inf'_zero
@[to_additive (attr := simp)]
lemma inf'_one [SemilatticeInf β] (f : α → β) : inf' 1 one_nonempty f = f 1 
Arguments: {α : Type u_2} {β : Type u_3} [Zero α] [SemilatticeInf β] (f : α → β)
Goal: Finset.inf' 0 ⋯ f = f 0
-- Finset.max_zero
@[to_additive (attr := simp)]
lemma max_one [LinearOrder α] : (1 : Finset α).max = 1 
Arguments: {α : Type u_2} [Zero α] [LinearOrder α]
Goal: Finset.max 0 = 0
-- Finset.max_one
@[to_additive (attr := simp)]
lemma max_one [LinearOrder α] : (1 : Finset α).max = 1 
Arguments: {α : Type u_2} [One α] [LinearOrder α]
Goal: Finset.max 1 = 1
-- Finset.min_zero
@[to_additive (attr := simp)]
lemma min_one [LinearOrder α] : (1 : Finset α).min = 1 
Arguments: {α : Type u_2} [Zero α] [LinearOrder α]
Goal: Finset.min 0 = 0
-- Finset.min_one
@[to_additive (attr := simp)]
lemma min_one [LinearOrder α] : (1 : Finset α).min = 1 
Arguments: {α : Type u_2} [One α] [LinearOrder α]
Goal: Finset.min 1 = 1
-- Finset.max'_zero
@[to_additive (attr := simp)]
lemma max'_one [LinearOrder α] : (1 : Finset α).max' one_nonempty = 1 
Arguments: {α : Type u_2} [Zero α] [LinearOrder α]
Goal: Finset.max' 0 ⋯ = 0
-- Finset.max'_one
@[to_additive (attr := simp)]
lemma max'_one [LinearOrder α] : (1 : Finset α).max' one_nonempty = 1 
Arguments: {α : Type u_2} [One α] [LinearOrder α]
Goal: Finset.max' 1 ⋯ = 1
-- Finset.min'_one
@[to_additive (attr := simp)]
lemma min'_one [LinearOrder α] : (1 : Finset α).min' one_nonempty = 1 
Arguments: {α : Type u_2} [One α] [LinearOrder α]
Goal: Finset.min' 1 ⋯ = 1
-- Finset.min'_zero
@[to_additive (attr := simp)]
lemma min'_one [LinearOrder α] : (1 : Finset α).min' one_nonempty = 1 
Arguments: {α : Type u_2} [Zero α] [LinearOrder α]
Goal: Finset.min' 0 ⋯ = 0
-- Finset.inv_def
@[to_additive]
theorem inv_def : s⁻¹ = s.image fun x => x⁻¹ 
Arguments: {α : Type u_2} [DecidableEq α] [Inv α] {s : Finset α}
Goal: s⁻¹ = Finset.image (fun x => x⁻¹) s
-- Finset.neg_def
@[to_additive]
theorem inv_def : s⁻¹ = s.image fun x => x⁻¹ 
Arguments: {α : Type u_2} [DecidableEq α] [Neg α] {s : Finset α}
Goal: -s = Finset.image (fun x => -x) s
-- Finset.image_neg
@[to_additive]
theorem image_inv : (s.image fun x => x⁻¹) = s⁻¹ 
Arguments: {α : Type u_2} [DecidableEq α] [Neg α] {s : Finset α}
Goal: Finset.image (fun x => -x) s = -s
-- Finset.image_inv
@[to_additive]
theorem image_inv : (s.image fun x => x⁻¹) = s⁻¹ 
Arguments: {α : Type u_2} [DecidableEq α] [Inv α] {s : Finset α}
Goal: Finset.image (fun x => x⁻¹) s = s⁻¹
-- Finset.mem_neg
@[to_additive]
theorem mem_inv {x : α} : x ∈ s⁻¹ ↔ ∃ y ∈ s, y⁻¹ = x 
Arguments: {α : Type u_2} [DecidableEq α] [Neg α] {s : Finset α} {x : α}
Goal: x ∈ -s ↔ ∃ y ∈ s, -y = x
-- Finset.mem_inv
@[to_additive]
theorem mem_inv {x : α} : x ∈ s⁻¹ ↔ ∃ y ∈ s, y⁻¹ = x 
Arguments: {α : Type u_2} [DecidableEq α] [Inv α] {s : Finset α} {x : α}
Goal: x ∈ s⁻¹ ↔ ∃ y ∈ s, y⁻¹ = x
-- Finset.neg_mem_neg
@[to_additive]
theorem inv_mem_inv (ha : a ∈ s) : a⁻¹ ∈ s⁻¹ 
Arguments: {α : Type u_2} [DecidableEq α] [Neg α] {s : Finset α} {a : α} (ha : a ∈ s)
Goal: -a ∈ -s
-- Finset.inv_mem_inv
@[to_additive]
theorem inv_mem_inv (ha : a ∈ s) : a⁻¹ ∈ s⁻¹ 
Arguments: {α : Type u_2} [DecidableEq α] [Inv α] {s : Finset α} {a : α} (ha : a ∈ s)
Goal: a⁻¹ ∈ s⁻¹
-- Finset.card_inv_le
@[to_additive]
theorem card_inv_le : s⁻¹.card ≤ s.card 
Arguments: {α : Type u_2} [DecidableEq α] [Inv α] {s : Finset α}
Goal: s⁻¹.card ≤ s.card
-- Finset.card_neg_le
@[to_additive]
theorem card_inv_le : s⁻¹.card ≤ s.card 
Arguments: {α : Type u_2} [DecidableEq α] [Neg α] {s : Finset α}
Goal: (-s).card ≤ s.card
-- Finset.inv_empty
@[to_additive (attr := simp)]
theorem inv_empty : (∅ : Finset α)⁻¹ = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [Inv α]
Goal: ∅⁻¹ = ∅
-- Finset.neg_empty
@[to_additive (attr := simp)]
theorem inv_empty : (∅ : Finset α)⁻¹ = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [Neg α]
Goal: -∅ = ∅
-- Finset.neg_nonempty_iff
@[to_additive (attr := simp, aesop safe apply (rule_sets := [finsetNonempty]))]
theorem inv_nonempty_iff : s⁻¹.Nonempty ↔ s.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [Neg α] {s : Finset α}
Goal: (-s).Nonempty ↔ s.Nonempty
-- Finset.inv_nonempty_iff
@[to_additive (attr := simp, aesop safe apply (rule_sets := [finsetNonempty]))]
theorem inv_nonempty_iff : s⁻¹.Nonempty ↔ s.Nonempty 
Arguments: {α : Type u_2} [DecidableEq α] [Inv α] {s : Finset α}
Goal: s⁻¹.Nonempty ↔ s.Nonempty
-- Finset.neg_eq_empty
@[to_additive (attr := simp)]
theorem inv_eq_empty : s⁻¹ = ∅ ↔ s = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [Neg α] {s : Finset α}
Goal: -s = ∅ ↔ s = ∅
-- Finset.inv_eq_empty
@[to_additive (attr := simp)]
theorem inv_eq_empty : s⁻¹ = ∅ ↔ s = ∅ 
Arguments: {α : Type u_2} [DecidableEq α] [Inv α] {s : Finset α}
Goal: s⁻¹ = ∅ ↔ s = ∅
-- Finset.inv_subset_inv
@[to_additive (attr := mono)]
theorem inv_subset_inv (h : s ⊆ t) : s⁻¹ ⊆ t⁻¹ 
Arguments: {α : Type u_2} [DecidableEq α] [Inv α] {s t : Finset α} (h : s ⊆ t)
Goal: s⁻¹ ⊆ t⁻¹
-- Finset.neg_subset_neg
@[to_additive (attr := mono)]
theorem inv_subset_inv (h : s ⊆ t) : s⁻¹ ⊆ t⁻¹ 
Arguments: {α : Type u_2} [DecidableEq α] [Neg α] {s t : Finset α} (h : s ⊆ t)
Goal: -s ⊆ -t
-- Finset.inv_singleton
@[to_additive (attr := simp)]
theorem inv_singleton (a : α) : ({a} : Finset α)⁻¹ = {a⁻¹} 
Arguments: {α : Type u_2} [DecidableEq α] [Inv α] (a : α)
Goal: {a}⁻¹ = {a⁻¹}
-- Finset.neg_singleton
@[to_additive (attr := simp)]
theorem inv_singleton (a : α) : ({a} : Finset α)⁻¹ = {a⁻¹} 
Arguments: {α : Type u_2} [DecidableEq α] [Neg α] (a : α)
Goal: -{a} = {-a}
-- Finset.neg_insert
@[to_additive (attr := simp)]
theorem inv_insert (a : α) (s : Finset α) : (insert a s)⁻¹ = insert a⁻¹ s⁻¹ 
Arguments: {α : Type u_2} [DecidableEq α] [Neg α] (a : α) (s : Finset α)
Goal: -insert a s = insert (-a) (-s)
-- Finset.inv_insert
@[to_additive (attr := simp)]
theorem inv_insert (a : α) (s : Finset α) : (insert a s)⁻¹ = insert a⁻¹ s⁻¹ 
Arguments: {α : Type u_2} [DecidableEq α] [Inv α] (a : α) (s : Finset α)
Goal: (insert a s)⁻¹ = insert a⁻¹ s⁻¹
-- Finset.sup_inv
@[to_additive (attr := simp)]
lemma sup_inv [SemilatticeSup β] [OrderBot β] (s : Finset α) (f : α → β) :
    sup s⁻¹ f = sup s (f ·⁻¹) 
Arguments: {α : Type u_2} {β : Type u_3} [DecidableEq α] [Inv α] [SemilatticeSup β] [OrderBot β] (s : Finset α) (f : α → β)
Goal: s⁻¹.sup f = s.sup fun x => f x⁻¹
-- Finset.sup_neg
@[to_additive (attr := simp)]
lemma sup_inv [SemilatticeSup β] [OrderBot β] (s : Finset α) (f : α → β) :
    sup s⁻¹ f = sup s (f ·⁻¹) 
Arguments: {α : Type u_2} {β : Type u_3} [DecidableEq α] [Neg α] [SemilatticeSup β] [OrderBot β] (s : Finset α) (f : α → β)
Goal: (-s).sup f = s.sup fun x => f (-x)
-- Finset.sup'_inv
@[to_additive (attr := simp)]
lemma sup'_inv [SemilatticeSup β] {s : Finset α} (hs : s⁻¹.Nonempty) (f : α → β) :
    sup' s⁻¹ hs f = sup' s hs.of_inv (f ·⁻¹) 
Arguments: {α : Type u_2} {β : Type u_3} [DecidableEq α] [Inv α] [SemilatticeSup β] {s : Finset α} (hs : s⁻¹.Nonempty) (f : α → β)
Goal: s⁻¹.sup' hs f = s.sup' ⋯ fun x => f x⁻¹
-- Finset.sup'_neg
@[to_additive (attr := simp)]
lemma sup'_inv [SemilatticeSup β] {s : Finset α} (hs : s⁻¹.Nonempty) (f : α → β) :
    sup' s⁻¹ hs f = sup' s hs.of_inv (f ·⁻¹) 
Arguments: {α : Type u_2} {β : Type u_3} [DecidableEq α] [Neg α] [SemilatticeSup β] {s : Finset α} (hs : (-s).Nonempty) (f : α → β)
Goal: (-s).sup' hs f = s.sup' ⋯ fun x => f (-x)
-- Finset.inf_inv
@[to_additive (attr := simp)]
lemma inf_inv [SemilatticeInf β] [OrderTop β] (s : Finset α) (f : α → β) :
    inf s⁻¹ f = inf s (f ·⁻¹) 
Arguments: {α : Type u_2} {β : Type u_3} [DecidableEq α] [Inv α] [SemilatticeInf β] [OrderTop β] (s : Finset α) (f : α → β)
Goal: s⁻¹.inf f = s.inf fun x => f x⁻¹
-- Finset.inf_neg
@[to_additive (attr := simp)]
lemma inf_inv [SemilatticeInf β] [OrderTop β] (s : Finset α) (f : α → β) :
    inf s⁻¹ f = inf s (f ·⁻¹) 
Arguments: {α : Type u_2} {β : Type u_3} [DecidableEq α] [Neg α] [SemilatticeInf β] [OrderTop β] (s : Finset α) (f : α → β)
Goal: (-s).inf f = s.inf fun x => f (-x)
-- Finset.inf'_inv
@[to_additive (attr := simp)]
lemma inf'_inv [SemilatticeInf β] {s : Finset α} (hs : s⁻¹.Nonempty) (f : α → β) :
    inf' s⁻¹ hs f = inf' s hs.of_inv (f ·⁻¹) 
Arguments: {α : Type u_2} {β : Type u_3} [DecidableEq α] [Inv α] [SemilatticeInf β] {s : Finset α} (hs : s⁻¹.Nonempty) (f : α → β)
Goal: s⁻¹.inf' hs f = s.inf' ⋯ fun x => f x⁻¹
-- Finset.inf'_neg
@[to_additive (attr := simp)]
lemma inf'_inv [SemilatticeInf β] {s : Finset α} (hs : s⁻¹.Nonempty) (f : α → β) :
    inf' s⁻¹ hs f = inf' s hs.of_inv (f ·⁻¹) 
Arguments: {α : Type u_2} {β : Type u_3} [DecidableEq α] [Neg α] [SemilatticeInf β] {s : Finset α} (hs : (-s).Nonempty) (f : α → β)
Goal: (-s).inf' hs f = s.inf' ⋯ fun x => f (-x)
-- Finset.image_op_inv
@[to_additive] lemma image_op_inv (s : Finset α) : s⁻¹.image op = (s.image op)⁻¹ 
Arguments: {α : Type u_2} [DecidableEq α] [Inv α] (s : Finset α)
Goal: Finset.image MulOpposite.op s⁻¹ = (Finset.image MulOpposite.op s)⁻¹
-- Finset.image_op_neg
@[to_additive] lemma image_op_inv (s : Finset α) : s⁻¹.image op = (s.image op)⁻¹ 
Arguments: {α : Type u_2} [DecidableEq α] [Neg α] (s : Finset α)
Goal: Finset.image AddOpposite.op (-s) = -Finset.image AddOpposite.op s