ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- Set.nonempty_neg
@[to_additive (attr := simp)]
theorem nonempty_inv : s⁻¹.Nonempty ↔ s.Nonempty 
Arguments: {α : Type u_2} [InvolutiveNeg α] {s : Set α}
Goal: (-s).Nonempty ↔ s.Nonempty
-- Set.nonempty_inv
@[to_additive (attr := simp)]
theorem nonempty_inv : s⁻¹.Nonempty ↔ s.Nonempty 
Arguments: {α : Type u_2} [InvolutiveInv α] {s : Set α}
Goal: s⁻¹.Nonempty ↔ s.Nonempty
-- Set.Nonempty.neg
@[to_additive]
theorem Nonempty.inv (h : s.Nonempty) : s⁻¹.Nonempty 
Arguments: {α : Type u_2} [InvolutiveNeg α] {s : Set α} (h : s.Nonempty)
Goal: (-s).Nonempty
-- Set.Nonempty.inv
@[to_additive]
theorem Nonempty.inv (h : s.Nonempty) : s⁻¹.Nonempty 
Arguments: {α : Type u_2} [InvolutiveInv α] {s : Set α} (h : s.Nonempty)
Goal: s⁻¹.Nonempty
-- Set.image_neg
@[to_additive (attr := simp)]
theorem image_inv : Inv.inv '' s = s⁻¹ 
Arguments: {α : Type u_2} [InvolutiveNeg α] {s : Set α}
Goal: Neg.neg '' s = -s
-- Set.image_inv
@[to_additive (attr := simp)]
theorem image_inv : Inv.inv '' s = s⁻¹ 
Arguments: {α : Type u_2} [InvolutiveInv α] {s : Set α}
Goal: Inv.inv '' s = s⁻¹
-- Set.inv_eq_empty
@[to_additive (attr := simp)]
theorem inv_eq_empty : s⁻¹ = ∅ ↔ s = ∅ 
Arguments: {α : Type u_2} [InvolutiveInv α] {s : Set α}
Goal: s⁻¹ = ∅ ↔ s = ∅
-- Set.neg_eq_empty
@[to_additive (attr := simp)]
theorem inv_eq_empty : s⁻¹ = ∅ ↔ s = ∅ 
Arguments: {α : Type u_2} [InvolutiveNeg α] {s : Set α}
Goal: -s = ∅ ↔ s = ∅
-- Set.neg_subset_neg
@[to_additive (attr := simp)]
theorem inv_subset_inv : s⁻¹ ⊆ t⁻¹ ↔ s ⊆ t 
Arguments: {α : Type u_2} [InvolutiveNeg α] {s t : Set α}
Goal: -s ⊆ -t ↔ s ⊆ t
-- Set.inv_subset_inv
@[to_additive (attr := simp)]
theorem inv_subset_inv : s⁻¹ ⊆ t⁻¹ ↔ s ⊆ t 
Arguments: {α : Type u_2} [InvolutiveInv α] {s t : Set α}
Goal: s⁻¹ ⊆ t⁻¹ ↔ s ⊆ t
-- Set.neg_subset
@[to_additive]
theorem inv_subset : s⁻¹ ⊆ t ↔ s ⊆ t⁻¹ 
Arguments: {α : Type u_2} [InvolutiveNeg α] {s t : Set α}
Goal: -s ⊆ t ↔ s ⊆ -t
-- Set.inv_subset
@[to_additive]
theorem inv_subset : s⁻¹ ⊆ t ↔ s ⊆ t⁻¹ 
Arguments: {α : Type u_2} [InvolutiveInv α] {s t : Set α}
Goal: s⁻¹ ⊆ t ↔ s ⊆ t⁻¹
-- Set.neg_singleton
@[to_additive (attr := simp)]
theorem inv_singleton (a : α) : ({a} : Set α)⁻¹ = {a⁻¹} 
Arguments: {α : Type u_2} [InvolutiveNeg α] (a : α)
Goal: -{a} = {-a}
-- Set.inv_singleton
@[to_additive (attr := simp)]
theorem inv_singleton (a : α) : ({a} : Set α)⁻¹ = {a⁻¹} 
Arguments: {α : Type u_2} [InvolutiveInv α] (a : α)
Goal: {a}⁻¹ = {a⁻¹}
-- Set.neg_insert
@[to_additive (attr := simp)]
theorem inv_insert (a : α) (s : Set α) : (insert a s)⁻¹ = insert a⁻¹ s⁻¹ 
Arguments: {α : Type u_2} [InvolutiveNeg α] (a : α) (s : Set α)
Goal: -insert a s = insert (-a) (-s)
-- Set.inv_insert
@[to_additive (attr := simp)]
theorem inv_insert (a : α) (s : Set α) : (insert a s)⁻¹ = insert a⁻¹ s⁻¹ 
Arguments: {α : Type u_2} [InvolutiveInv α] (a : α) (s : Set α)
Goal: (insert a s)⁻¹ = insert a⁻¹ s⁻¹
-- Set.neg_range
@[to_additive]
theorem inv_range {ι : Sort*} {f : ι → α} : (range f)⁻¹ = range fun i => (f i)⁻¹ 
Arguments: {α : Type u_2} [InvolutiveNeg α] {ι : Sort u_5} {f : ι → α}
Goal: -Set.range f = Set.range fun i => -f i
-- Set.inv_range
@[to_additive]
theorem inv_range {ι : Sort*} {f : ι → α} : (range f)⁻¹ = range fun i => (f i)⁻¹ 
Arguments: {α : Type u_2} [InvolutiveInv α] {ι : Sort u_5} {f : ι → α}
Goal: (Set.range f)⁻¹ = Set.range fun i => (f i)⁻¹
-- Set.image_op_neg
@[to_additive]
theorem image_op_inv : op '' s⁻¹ = (op '' s)⁻¹ 
Arguments: {α : Type u_2} [InvolutiveNeg α] {s : Set α}
Goal: AddOpposite.op '' (-s) = -AddOpposite.op '' s
-- Set.image_op_inv
@[to_additive]
theorem image_op_inv : op '' s⁻¹ = (op '' s)⁻¹ 
Arguments: {α : Type u_2} [InvolutiveInv α] {s : Set α}
Goal: MulOpposite.op '' s⁻¹ = (MulOpposite.op '' s)⁻¹
-- Set.image2_add
@[to_additive (attr := simp)]
theorem image2_mul : image2 (· * ·) s t = s * t 
Arguments: {α : Type u_2} [Add α] {s t : Set α}
Goal: Set.image2 (fun x x_1 => x + x_1) s t = s + t
-- Set.image2_mul
@[to_additive (attr := simp)]
theorem image2_mul : image2 (· * ·) s t = s * t 
Arguments: {α : Type u_2} [Mul α] {s t : Set α}
Goal: Set.image2 (fun x x_1 => x * x_1) s t = s * t
-- Set.mem_mul
@[to_additive]
theorem mem_mul : a ∈ s * t ↔ ∃ x ∈ s, ∃ y ∈ t, x * y = a 
Arguments: {α : Type u_2} [Mul α] {s t : Set α} {a : α}
Goal: a ∈ s * t ↔ ∃ x ∈ s, ∃ y ∈ t, x * y = a
-- Set.mem_add
@[to_additive]
theorem mem_mul : a ∈ s * t ↔ ∃ x ∈ s, ∃ y ∈ t, x * y = a 
Arguments: {α : Type u_2} [Add α] {s t : Set α} {a : α}
Goal: a ∈ s + t ↔ ∃ x ∈ s, ∃ y ∈ t, x + y = a
-- Set.add_mem_add
@[to_additive]
theorem mul_mem_mul : a ∈ s → b ∈ t → a * b ∈ s * t 
Arguments: {α : Type u_2} [Add α] {s t : Set α} {a b : α}
Goal: a ∈ s → b ∈ t → a + b ∈ s + t
-- Set.mul_mem_mul
@[to_additive]
theorem mul_mem_mul : a ∈ s → b ∈ t → a * b ∈ s * t 
Arguments: {α : Type u_2} [Mul α] {s t : Set α} {a b : α}
Goal: a ∈ s → b ∈ t → a * b ∈ s * t
-- Set.add_image_prod
@[to_additive add_image_prod]
theorem image_mul_prod : (fun x : α × α => x.fst * x.snd) '' s ×ˢ t = s * t 
Arguments: {α : Type u_2} [Add α] {s t : Set α}
Goal: (fun x => x.1 + x.2) '' s ×ˢ t = s + t
-- Set.image_mul_prod
@[to_additive add_image_prod]
theorem image_mul_prod : (fun x : α × α => x.fst * x.snd) '' s ×ˢ t = s * t 
Arguments: {α : Type u_2} [Mul α] {s t : Set α}
Goal: (fun x => x.1 * x.2) '' s ×ˢ t = s * t
-- Set.empty_mul
@[to_additive (attr := simp)]
theorem empty_mul : ∅ * s = ∅ 
Arguments: {α : Type u_2} [Mul α] {s : Set α}
Goal: ∅ * s = ∅
-- Set.empty_add
@[to_additive (attr := simp)]
theorem empty_mul : ∅ * s = ∅ 
Arguments: {α : Type u_2} [Add α] {s : Set α}
Goal: ∅ + s = ∅
-- Set.mul_empty
@[to_additive (attr := simp)]
theorem mul_empty : s * ∅ = ∅ 
Arguments: {α : Type u_2} [Mul α] {s : Set α}
Goal: s * ∅ = ∅
-- Set.add_empty
@[to_additive (attr := simp)]
theorem mul_empty : s * ∅ = ∅ 
Arguments: {α : Type u_2} [Add α] {s : Set α}
Goal: s + ∅ = ∅
-- Set.add_eq_empty
@[to_additive (attr := simp)]
theorem mul_eq_empty : s * t = ∅ ↔ s = ∅ ∨ t = ∅ 
Arguments: {α : Type u_2} [Add α] {s t : Set α}
Goal: s + t = ∅ ↔ s = ∅ ∨ t = ∅
-- Set.mul_eq_empty
@[to_additive (attr := simp)]
theorem mul_eq_empty : s * t = ∅ ↔ s = ∅ ∨ t = ∅ 
Arguments: {α : Type u_2} [Mul α] {s t : Set α}
Goal: s * t = ∅ ↔ s = ∅ ∨ t = ∅
-- Set.mul_nonempty
@[to_additive (attr := simp)]
theorem mul_nonempty : (s * t).Nonempty ↔ s.Nonempty ∧ t.Nonempty 
Arguments: {α : Type u_2} [Mul α] {s t : Set α}
Goal: (s * t).Nonempty ↔ s.Nonempty ∧ t.Nonempty
-- Set.add_nonempty
@[to_additive (attr := simp)]
theorem mul_nonempty : (s * t).Nonempty ↔ s.Nonempty ∧ t.Nonempty 
Arguments: {α : Type u_2} [Add α] {s t : Set α}
Goal: (s + t).Nonempty ↔ s.Nonempty ∧ t.Nonempty
-- Set.Nonempty.add
@[to_additive]
theorem Nonempty.mul : s.Nonempty → t.Nonempty → (s * t).Nonempty 
Arguments: {α : Type u_2} [Add α] {s t : Set α}
Goal: s.Nonempty → t.Nonempty → (s + t).Nonempty
-- Set.Nonempty.mul
@[to_additive]
theorem Nonempty.mul : s.Nonempty → t.Nonempty → (s * t).Nonempty 
Arguments: {α : Type u_2} [Mul α] {s t : Set α}
Goal: s.Nonempty → t.Nonempty → (s * t).Nonempty
-- Set.Nonempty.of_add_left
@[to_additive]
theorem Nonempty.of_mul_left : (s * t).Nonempty → s.Nonempty 
Arguments: {α : Type u_2} [Add α] {s t : Set α}
Goal: (s + t).Nonempty → s.Nonempty
-- Set.Nonempty.of_mul_left
@[to_additive]
theorem Nonempty.of_mul_left : (s * t).Nonempty → s.Nonempty 
Arguments: {α : Type u_2} [Mul α] {s t : Set α}
Goal: (s * t).Nonempty → s.Nonempty
-- Set.Nonempty.of_add_right
@[to_additive]
theorem Nonempty.of_mul_right : (s * t).Nonempty → t.Nonempty 
Arguments: {α : Type u_2} [Add α] {s t : Set α}
Goal: (s + t).Nonempty → t.Nonempty
-- Set.Nonempty.of_mul_right
@[to_additive]
theorem Nonempty.of_mul_right : (s * t).Nonempty → t.Nonempty 
Arguments: {α : Type u_2} [Mul α] {s t : Set α}
Goal: (s * t).Nonempty → t.Nonempty
-- Set.add_singleton
@[to_additive (attr := simp)]
theorem mul_singleton : s * {b} = (· * b) '' s 
Arguments: {α : Type u_2} [Add α] {s : Set α} {b : α}
Goal: s + {b} = (fun x => x + b) '' s
-- Set.mul_singleton
@[to_additive (attr := simp)]
theorem mul_singleton : s * {b} = (· * b) '' s 
Arguments: {α : Type u_2} [Mul α] {s : Set α} {b : α}
Goal: s * {b} = (fun x => x * b) '' s
-- Set.singleton_mul
@[to_additive (attr := simp)]
theorem singleton_mul : {a} * t = (a * ·) '' t 
Arguments: {α : Type u_2} [Mul α] {t : Set α} {a : α}
Goal: {a} * t = (fun x => a * x) '' t
-- Set.singleton_add
@[to_additive (attr := simp)]
theorem singleton_mul : {a} * t = (a * ·) '' t 
Arguments: {α : Type u_2} [Add α] {t : Set α} {a : α}
Goal: {a} + t = (fun x => a + x) '' t
-- Set.singleton_add_singleton
@[to_additive]
theorem singleton_mul_singleton : ({a} : Set α) * {b} = {a * b} 
Arguments: {α : Type u_2} [Add α] {a b : α}
Goal: {a} + {b} = {a + b}
-- Set.singleton_mul_singleton
@[to_additive]
theorem singleton_mul_singleton : ({a} : Set α) * {b} = {a * b} 
Arguments: {α : Type u_2} [Mul α] {a b : α}
Goal: {a} * {b} = {a * b}
-- Set.add_subset_add
@[to_additive (attr := mono)]
theorem mul_subset_mul : s₁ ⊆ t₁ → s₂ ⊆ t₂ → s₁ * s₂ ⊆ t₁ * t₂ 
Arguments: {α : Type u_2} [Add α] {s₁ s₂ t₁ t₂ : Set α}
Goal: s₁ ⊆ t₁ → s₂ ⊆ t₂ → s₁ + s₂ ⊆ t₁ + t₂
-- Set.mul_subset_mul
@[to_additive (attr := mono)]
theorem mul_subset_mul : s₁ ⊆ t₁ → s₂ ⊆ t₂ → s₁ * s₂ ⊆ t₁ * t₂ 
Arguments: {α : Type u_2} [Mul α] {s₁ s₂ t₁ t₂ : Set α}
Goal: s₁ ⊆ t₁ → s₂ ⊆ t₂ → s₁ * s₂ ⊆ t₁ * t₂
-- Set.mul_subset_mul_left
@[to_additive]
theorem mul_subset_mul_left : t₁ ⊆ t₂ → s * t₁ ⊆ s * t₂ 
Arguments: {α : Type u_2} [Mul α] {s t₁ t₂ : Set α}
Goal: t₁ ⊆ t₂ → s * t₁ ⊆ s * t₂
-- Set.add_subset_add_left
@[to_additive]
theorem mul_subset_mul_left : t₁ ⊆ t₂ → s * t₁ ⊆ s * t₂ 
Arguments: {α : Type u_2} [Add α] {s t₁ t₂ : Set α}
Goal: t₁ ⊆ t₂ → s + t₁ ⊆ s + t₂
-- Set.add_subset_add_right
@[to_additive]
theorem mul_subset_mul_right : s₁ ⊆ s₂ → s₁ * t ⊆ s₂ * t 
Arguments: {α : Type u_2} [Add α] {s₁ s₂ t : Set α}
Goal: s₁ ⊆ s₂ → s₁ + t ⊆ s₂ + t
-- Set.mul_subset_mul_right
@[to_additive]
theorem mul_subset_mul_right : s₁ ⊆ s₂ → s₁ * t ⊆ s₂ * t 
Arguments: {α : Type u_2} [Mul α] {s₁ s₂ t : Set α}
Goal: s₁ ⊆ s₂ → s₁ * t ⊆ s₂ * t
-- Set.add_subset_iff
@[to_additive]
theorem mul_subset_iff : s * t ⊆ u ↔ ∀ x ∈ s, ∀ y ∈ t, x * y ∈ u 
Arguments: {α : Type u_2} [Add α] {s t u : Set α}
Goal: s + t ⊆ u ↔ ∀ x ∈ s, ∀ y ∈ t, x + y ∈ u
-- Set.mul_subset_iff
@[to_additive]
theorem mul_subset_iff : s * t ⊆ u ↔ ∀ x ∈ s, ∀ y ∈ t, x * y ∈ u 
Arguments: {α : Type u_2} [Mul α] {s t u : Set α}
Goal: s * t ⊆ u ↔ ∀ x ∈ s, ∀ y ∈ t, x * y ∈ u
-- Set.union_add
@[to_additive]
theorem union_mul : (s₁ ∪ s₂) * t = s₁ * t ∪ s₂ * t 
Arguments: {α : Type u_2} [Add α] {s₁ s₂ t : Set α}
Goal: s₁ ∪ s₂ + t = s₁ + t ∪ (s₂ + t)
-- Set.union_mul
@[to_additive]
theorem union_mul : (s₁ ∪ s₂) * t = s₁ * t ∪ s₂ * t 
Arguments: {α : Type u_2} [Mul α] {s₁ s₂ t : Set α}
Goal: (s₁ ∪ s₂) * t = s₁ * t ∪ s₂ * t
-- Set.mul_union
@[to_additive]
theorem mul_union : s * (t₁ ∪ t₂) = s * t₁ ∪ s * t₂ 
Arguments: {α : Type u_2} [Mul α] {s t₁ t₂ : Set α}
Goal: s * (t₁ ∪ t₂) = s * t₁ ∪ s * t₂
-- Set.add_union
@[to_additive]
theorem mul_union : s * (t₁ ∪ t₂) = s * t₁ ∪ s * t₂ 
Arguments: {α : Type u_2} [Add α] {s t₁ t₂ : Set α}
Goal: s + (t₁ ∪ t₂) = s + t₁ ∪ (s + t₂)
-- Set.inter_add_subset
@[to_additive]
theorem inter_mul_subset : s₁ ∩ s₂ * t ⊆ s₁ * t ∩ (s₂ * t) 
Arguments: {α : Type u_2} [Add α] {s₁ s₂ t : Set α}
Goal: s₁ ∩ s₂ + t ⊆ (s₁ + t) ∩ (s₂ + t)
-- Set.inter_mul_subset
@[to_additive]
theorem inter_mul_subset : s₁ ∩ s₂ * t ⊆ s₁ * t ∩ (s₂ * t) 
Arguments: {α : Type u_2} [Mul α] {s₁ s₂ t : Set α}
Goal: s₁ ∩ s₂ * t ⊆ s₁ * t ∩ (s₂ * t)
-- Set.mul_inter_subset
@[to_additive]
theorem mul_inter_subset : s * (t₁ ∩ t₂) ⊆ s * t₁ ∩ (s * t₂) 
Arguments: {α : Type u_2} [Mul α] {s t₁ t₂ : Set α}
Goal: s * (t₁ ∩ t₂) ⊆ s * t₁ ∩ (s * t₂)
-- Set.add_inter_subset
@[to_additive]
theorem mul_inter_subset : s * (t₁ ∩ t₂) ⊆ s * t₁ ∩ (s * t₂) 
Arguments: {α : Type u_2} [Add α] {s t₁ t₂ : Set α}
Goal: s + t₁ ∩ t₂ ⊆ (s + t₁) ∩ (s + t₂)
-- Set.inter_add_union_subset_union
@[to_additive]
theorem inter_mul_union_subset_union : s₁ ∩ s₂ * (t₁ ∪ t₂) ⊆ s₁ * t₁ ∪ s₂ * t₂ 
Arguments: {α : Type u_2} [Add α] {s₁ s₂ t₁ t₂ : Set α}
Goal: s₁ ∩ s₂ + (t₁ ∪ t₂) ⊆ s₁ + t₁ ∪ (s₂ + t₂)
-- Set.inter_mul_union_subset_union
@[to_additive]
theorem inter_mul_union_subset_union : s₁ ∩ s₂ * (t₁ ∪ t₂) ⊆ s₁ * t₁ ∪ s₂ * t₂ 
Arguments: {α : Type u_2} [Mul α] {s₁ s₂ t₁ t₂ : Set α}
Goal: s₁ ∩ s₂ * (t₁ ∪ t₂) ⊆ s₁ * t₁ ∪ s₂ * t₂
-- Set.union_add_inter_subset_union
@[to_additive]
theorem union_mul_inter_subset_union : (s₁ ∪ s₂) * (t₁ ∩ t₂) ⊆ s₁ * t₁ ∪ s₂ * t₂ 
Arguments: {α : Type u_2} [Add α] {s₁ s₂ t₁ t₂ : Set α}
Goal: s₁ ∪ s₂ + t₁ ∩ t₂ ⊆ s₁ + t₁ ∪ (s₂ + t₂)
-- Set.union_mul_inter_subset_union
@[to_additive]
theorem union_mul_inter_subset_union : (s₁ ∪ s₂) * (t₁ ∩ t₂) ⊆ s₁ * t₁ ∪ s₂ * t₂ 
Arguments: {α : Type u_2} [Mul α] {s₁ s₂ t₁ t₂ : Set α}
Goal: (s₁ ∪ s₂) * (t₁ ∩ t₂) ⊆ s₁ * t₁ ∪ s₂ * t₂
-- Set.iUnion_add_left_image
@[to_additive]
theorem iUnion_mul_left_image : ⋃ a ∈ s, (a * ·) '' t = s * t 
Arguments: {α : Type u_2} [Add α] {s t : Set α}
Goal: ⋃ a ∈ s, (fun x => a + x) '' t = s + t
-- Set.iUnion_mul_left_image
@[to_additive]
theorem iUnion_mul_left_image : ⋃ a ∈ s, (a * ·) '' t = s * t 
Arguments: {α : Type u_2} [Mul α] {s t : Set α}
Goal: ⋃ a ∈ s, (fun x => a * x) '' t = s * t
-- Set.iUnion_mul_right_image
@[to_additive]
theorem iUnion_mul_right_image : ⋃ a ∈ t, (· * a) '' s = s * t 
Arguments: {α : Type u_2} [Mul α] {s t : Set α}
Goal: ⋃ a ∈ t, (fun x => x * a) '' s = s * t
-- Set.iUnion_add_right_image
@[to_additive]
theorem iUnion_mul_right_image : ⋃ a ∈ t, (· * a) '' s = s * t 
Arguments: {α : Type u_2} [Add α] {s t : Set α}
Goal: ⋃ a ∈ t, (fun x => x + a) '' s = s + t
-- Set.iUnion_mul
@[to_additive]
theorem iUnion_mul (s : ι → Set α) (t : Set α) : (⋃ i, s i) * t = ⋃ i, s i * t 
Arguments: {α : Type u_2} {ι : Sort u_5} [Mul α] (s : ι → Set α) (t : Set α)
Goal: (⋃ i, s i) * t = ⋃ i, s i * t
-- Set.iUnion_add
@[to_additive]
theorem iUnion_mul (s : ι → Set α) (t : Set α) : (⋃ i, s i) * t = ⋃ i, s i * t 
Arguments: {α : Type u_2} {ι : Sort u_5} [Add α] (s : ι → Set α) (t : Set α)
Goal: (⋃ i, s i) + t = ⋃ i, s i + t
-- Set.add_iUnion
@[to_additive]
theorem mul_iUnion (s : Set α) (t : ι → Set α) : (s * ⋃ i, t i) = ⋃ i, s * t i 
Arguments: {α : Type u_2} {ι : Sort u_5} [Add α] (s : Set α) (t : ι → Set α)
Goal: s + ⋃ i, t i = ⋃ i, s + t i
-- Set.mul_iUnion
@[to_additive]
theorem mul_iUnion (s : Set α) (t : ι → Set α) : (s * ⋃ i, t i) = ⋃ i, s * t i 
Arguments: {α : Type u_2} {ι : Sort u_5} [Mul α] (s : Set α) (t : ι → Set α)
Goal: s * ⋃ i, t i = ⋃ i, s * t i
-- Set.iUnion₂_mul
@[to_additive]
theorem iUnion₂_mul (s : ∀ i, κ i → Set α) (t : Set α) :
    (⋃ (i) (j), s i j) * t = ⋃ (i) (j), s i j * t 
Arguments: {α : Type u_2} {ι : Sort u_5} {κ : ι → Sort u_6} [Mul α] (s : (i : ι) → κ i → Set α) (t : Set α)
Goal: (⋃ i, ⋃ j, s i j) * t = ⋃ i, ⋃ j, s i j * t
-- Set.iUnion₂_add
@[to_additive]
theorem iUnion₂_mul (s : ∀ i, κ i → Set α) (t : Set α) :
    (⋃ (i) (j), s i j) * t = ⋃ (i) (j), s i j * t 
Arguments: {α : Type u_2} {ι : Sort u_5} {κ : ι → Sort u_6} [Add α] (s : (i : ι) → κ i → Set α) (t : Set α)
Goal: (⋃ i, ⋃ j, s i j) + t = ⋃ i, ⋃ j, s i j + t
-- Set.mul_iUnion₂
@[to_additive]
theorem mul_iUnion₂ (s : Set α) (t : ∀ i, κ i → Set α) :
    (s * ⋃ (i) (j), t i j) = ⋃ (i) (j), s * t i j 
Arguments: {α : Type u_2} {ι : Sort u_5} {κ : ι → Sort u_6} [Mul α] (s : Set α) (t : (i : ι) → κ i → Set α)
Goal: s * ⋃ i, ⋃ j, t i j = ⋃ i, ⋃ j, s * t i j
-- Set.add_iUnion₂
@[to_additive]
theorem mul_iUnion₂ (s : Set α) (t : ∀ i, κ i → Set α) :
    (s * ⋃ (i) (j), t i j) = ⋃ (i) (j), s * t i j 
Arguments: {α : Type u_2} {ι : Sort u_5} {κ : ι → Sort u_6} [Add α] (s : Set α) (t : (i : ι) → κ i → Set α)
Goal: s + ⋃ i, ⋃ j, t i j = ⋃ i, ⋃ j, s + t i j
-- Set.iInter_add_subset
@[to_additive]
theorem iInter_mul_subset (s : ι → Set α) (t : Set α) : (⋂ i, s i) * t ⊆ ⋂ i, s i * t 
Arguments: {α : Type u_2} {ι : Sort u_5} [Add α] (s : ι → Set α) (t : Set α)
Goal: (⋂ i, s i) + t ⊆ ⋂ i, s i + t
-- Set.iInter_mul_subset
@[to_additive]
theorem iInter_mul_subset (s : ι → Set α) (t : Set α) : (⋂ i, s i) * t ⊆ ⋂ i, s i * t 
Arguments: {α : Type u_2} {ι : Sort u_5} [Mul α] (s : ι → Set α) (t : Set α)
Goal: (⋂ i, s i) * t ⊆ ⋂ i, s i * t
-- Set.add_iInter_subset
@[to_additive]
theorem mul_iInter_subset (s : Set α) (t : ι → Set α) : (s * ⋂ i, t i) ⊆ ⋂ i, s * t i 
Arguments: {α : Type u_2} {ι : Sort u_5} [Add α] (s : Set α) (t : ι → Set α)
Goal: s + ⋂ i, t i ⊆ ⋂ i, s + t i
-- Set.mul_iInter_subset
@[to_additive]
theorem mul_iInter_subset (s : Set α) (t : ι → Set α) : (s * ⋂ i, t i) ⊆ ⋂ i, s * t i 
Arguments: {α : Type u_2} {ι : Sort u_5} [Mul α] (s : Set α) (t : ι → Set α)
Goal: s * ⋂ i, t i ⊆ ⋂ i, s * t i
-- Set.iInter₂_mul_subset
@[to_additive]
theorem iInter₂_mul_subset (s : ∀ i, κ i → Set α) (t : Set α) :
    (⋂ (i) (j), s i j) * t ⊆ ⋂ (i) (j), s i j * t 
Arguments: {α : Type u_2} {ι : Sort u_5} {κ : ι → Sort u_6} [Mul α] (s : (i : ι) → κ i → Set α) (t : Set α)
Goal: (⋂ i, ⋂ j, s i j) * t ⊆ ⋂ i, ⋂ j, s i j * t
-- Set.iInter₂_add_subset
@[to_additive]
theorem iInter₂_mul_subset (s : ∀ i, κ i → Set α) (t : Set α) :
    (⋂ (i) (j), s i j) * t ⊆ ⋂ (i) (j), s i j * t 
Arguments: {α : Type u_2} {ι : Sort u_5} {κ : ι → Sort u_6} [Add α] (s : (i : ι) → κ i → Set α) (t : Set α)
Goal: (⋂ i, ⋂ j, s i j) + t ⊆ ⋂ i, ⋂ j, s i j + t
-- Set.add_iInter₂_subset
@[to_additive]
theorem mul_iInter₂_subset (s : Set α) (t : ∀ i, κ i → Set α) :
    (s * ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), s * t i j 
Arguments: {α : Type u_2} {ι : Sort u_5} {κ : ι → Sort u_6} [Add α] (s : Set α) (t : (i : ι) → κ i → Set α)
Goal: s + ⋂ i, ⋂ j, t i j ⊆ ⋂ i, ⋂ j, s + t i j
-- Set.mul_iInter₂_subset
@[to_additive]
theorem mul_iInter₂_subset (s : Set α) (t : ∀ i, κ i → Set α) :
    (s * ⋂ (i) (j), t i j) ⊆ ⋂ (i) (j), s * t i j 
Arguments: {α : Type u_2} {ι : Sort u_5} {κ : ι → Sort u_6} [Mul α] (s : Set α) (t : (i : ι) → κ i → Set α)
Goal: s * ⋂ i, ⋂ j, t i j ⊆ ⋂ i, ⋂ j, s * t i j
-- Set.coe_singletonMulHom
@[to_additive (attr := simp)]
theorem coe_singletonMulHom : (singletonMulHom : α → Set α) = singleton 
Arguments: {α : Type u_2} [Mul α]
Goal: ⇑Set.singletonMulHom = singleton
-- Set.coe_singletonAddHom
@[to_additive (attr := simp)]
theorem coe_singletonMulHom : (singletonMulHom : α → Set α) = singleton 
Arguments: {α : Type u_2} [Add α]
Goal: ⇑Set.singletonAddHom = singleton
-- Set.singletonAddHom_apply
@[to_additive (attr := simp)]
theorem singletonMulHom_apply (a : α) : singletonMulHom a = {a} 
Arguments: {α : Type u_2} [Add α] (a : α)
Goal: Set.singletonAddHom a = {a}
-- Set.singletonMulHom_apply
@[to_additive (attr := simp)]
theorem singletonMulHom_apply (a : α) : singletonMulHom a = {a} 
Arguments: {α : Type u_2} [Mul α] (a : α)
Goal: Set.singletonMulHom a = {a}
-- Set.image_op_mul
@[to_additive (attr := simp)]
theorem image_op_mul : op '' (s * t) = op '' t * op '' s 
Arguments: {α : Type u_2} [Mul α] {s t : Set α}
Goal: MulOpposite.op '' (s * t) = MulOpposite.op '' t * MulOpposite.op '' s
-- Set.image_op_add
@[to_additive (attr := simp)]
theorem image_op_mul : op '' (s * t) = op '' t * op '' s 
Arguments: {α : Type u_2} [Add α] {s t : Set α}
Goal: AddOpposite.op '' (s + t) = AddOpposite.op '' t + AddOpposite.op '' s
-- Set.image2_div
@[to_additive (attr := simp)]
theorem image2_div : image2 Div.div s t = s / t 
Arguments: {α : Type u_2} [Div α] {s t : Set α}
Goal: Set.image2 Div.div s t = s / t
-- Set.image2_sub
@[to_additive (attr := simp)]
theorem image2_div : image2 Div.div s t = s / t 
Arguments: {α : Type u_2} [Sub α] {s t : Set α}
Goal: Set.image2 Sub.sub s t = s - t
-- Set.mem_sub
@[to_additive]
theorem mem_div : a ∈ s / t ↔ ∃ x ∈ s, ∃ y ∈ t, x / y = a 
Arguments: {α : Type u_2} [Sub α] {s t : Set α} {a : α}
Goal: a ∈ s - t ↔ ∃ x ∈ s, ∃ y ∈ t, x - y = a
-- Set.mem_div
@[to_additive]
theorem mem_div : a ∈ s / t ↔ ∃ x ∈ s, ∃ y ∈ t, x / y = a 
Arguments: {α : Type u_2} [Div α] {s t : Set α} {a : α}
Goal: a ∈ s / t ↔ ∃ x ∈ s, ∃ y ∈ t, x / y = a
-- Set.div_mem_div
@[to_additive]
theorem div_mem_div : a ∈ s → b ∈ t → a / b ∈ s / t 
Arguments: {α : Type u_2} [Div α] {s t : Set α} {a b : α}
Goal: a ∈ s → b ∈ t → a / b ∈ s / t
-- Set.sub_mem_sub
@[to_additive]
theorem div_mem_div : a ∈ s → b ∈ t → a / b ∈ s / t 
Arguments: {α : Type u_2} [Sub α] {s t : Set α} {a b : α}
Goal: a ∈ s → b ∈ t → a - b ∈ s - t
-- Set.image_div_prod
@[to_additive sub_image_prod]
theorem image_div_prod : (fun x : α × α => x.fst / x.snd) '' s ×ˢ t = s / t 
Arguments: {α : Type u_2} [Div α] {s t : Set α}
Goal: (fun x => x.1 / x.2) '' s ×ˢ t = s / t
-- Set.sub_image_prod
@[to_additive sub_image_prod]
theorem image_div_prod : (fun x : α × α => x.fst / x.snd) '' s ×ˢ t = s / t 
Arguments: {α : Type u_2} [Sub α] {s t : Set α}
Goal: (fun x => x.1 - x.2) '' s ×ˢ t = s - t
-- Set.empty_div
@[to_additive (attr := simp)]
theorem empty_div : ∅ / s = ∅ 
Arguments: {α : Type u_2} [Div α] {s : Set α}
Goal: ∅ / s = ∅
-- Set.empty_sub
@[to_additive (attr := simp)]
theorem empty_div : ∅ / s = ∅ 
Arguments: {α : Type u_2} [Sub α] {s : Set α}
Goal: ∅ - s = ∅
-- Set.div_empty
@[to_additive (attr := simp)]
theorem div_empty : s / ∅ = ∅ 
Arguments: {α : Type u_2} [Div α] {s : Set α}
Goal: s / ∅ = ∅
-- Set.sub_empty
@[to_additive (attr := simp)]
theorem div_empty : s / ∅ = ∅ 
Arguments: {α : Type u_2} [Sub α] {s : Set α}
Goal: s - ∅ = ∅
-- Set.sub_eq_empty
@[to_additive (attr := simp)]
theorem div_eq_empty : s / t = ∅ ↔ s = ∅ ∨ t = ∅ 
Arguments: {α : Type u_2} [Sub α] {s t : Set α}
Goal: s - t = ∅ ↔ s = ∅ ∨ t = ∅
-- Set.div_eq_empty
@[to_additive (attr := simp)]
theorem div_eq_empty : s / t = ∅ ↔ s = ∅ ∨ t = ∅ 
Arguments: {α : Type u_2} [Div α] {s t : Set α}
Goal: s / t = ∅ ↔ s = ∅ ∨ t = ∅
-- Set.div_nonempty
@[to_additive (attr := simp)]
theorem div_nonempty : (s / t).Nonempty ↔ s.Nonempty ∧ t.Nonempty 
Arguments: {α : Type u_2} [Div α] {s t : Set α}
Goal: (s / t).Nonempty ↔ s.Nonempty ∧ t.Nonempty
-- Set.sub_nonempty
@[to_additive (attr := simp)]
theorem div_nonempty : (s / t).Nonempty ↔ s.Nonempty ∧ t.Nonempty 
Arguments: {α : Type u_2} [Sub α] {s t : Set α}
Goal: (s - t).Nonempty ↔ s.Nonempty ∧ t.Nonempty
-- Set.Nonempty.sub
@[to_additive]
theorem Nonempty.div : s.Nonempty → t.Nonempty → (s / t).Nonempty 
Arguments: {α : Type u_2} [Sub α] {s t : Set α}
Goal: s.Nonempty → t.Nonempty → (s - t).Nonempty
-- Set.Nonempty.div
@[to_additive]
theorem Nonempty.div : s.Nonempty → t.Nonempty → (s / t).Nonempty 
Arguments: {α : Type u_2} [Div α] {s t : Set α}
Goal: s.Nonempty → t.Nonempty → (s / t).Nonempty
-- Set.Nonempty.of_div_left
@[to_additive]
theorem Nonempty.of_div_left : (s / t).Nonempty → s.Nonempty 
Arguments: {α : Type u_2} [Div α] {s t : Set α}
Goal: (s / t).Nonempty → s.Nonempty
-- Set.Nonempty.of_sub_left
@[to_additive]
theorem Nonempty.of_div_left : (s / t).Nonempty → s.Nonempty 
Arguments: {α : Type u_2} [Sub α] {s t : Set α}
Goal: (s - t).Nonempty → s.Nonempty
-- Set.Nonempty.of_div_right
@[to_additive]
theorem Nonempty.of_div_right : (s / t).Nonempty → t.Nonempty 
Arguments: {α : Type u_2} [Div α] {s t : Set α}
Goal: (s / t).Nonempty → t.Nonempty
-- Set.Nonempty.of_sub_right
@[to_additive]
theorem Nonempty.of_div_right : (s / t).Nonempty → t.Nonempty 
Arguments: {α : Type u_2} [Sub α] {s t : Set α}
Goal: (s - t).Nonempty → t.Nonempty
-- Set.sub_singleton
@[to_additive (attr := simp)]
theorem div_singleton : s / {b} = (· / b) '' s 
Arguments: {α : Type u_2} [Sub α] {s : Set α} {b : α}
Goal: s - {b} = (fun x => x - b) '' s
-- Set.div_singleton
@[to_additive (attr := simp)]
theorem div_singleton : s / {b} = (· / b) '' s 
Arguments: {α : Type u_2} [Div α] {s : Set α} {b : α}
Goal: s / {b} = (fun x => x / b) '' s
-- Set.singleton_div
@[to_additive (attr := simp)]
theorem singleton_div : {a} / t = (· / ·) a '' t 
Arguments: {α : Type u_2} [Div α] {t : Set α} {a : α}
Goal: {a} / t = (fun x x_1 => x / x_1) a '' t
-- Set.singleton_sub
@[to_additive (attr := simp)]
theorem singleton_div : {a} / t = (· / ·) a '' t 
Arguments: {α : Type u_2} [Sub α] {t : Set α} {a : α}
Goal: {a} - t = (fun x x_1 => x - x_1) a '' t
-- Set.singleton_div_singleton
@[to_additive]
theorem singleton_div_singleton : ({a} : Set α) / {b} = {a / b} 
Arguments: {α : Type u_2} [Div α] {a b : α}
Goal: {a} / {b} = {a / b}