Documentation

Mathlib.Algebra.Group.Pointwise.Set.Basic

Pointwise operations of sets #

This file defines pointwise algebraic operations on sets.

Main declarations #

For sets s and t and scalar a:

For α a semigroup/monoid, Set α is a semigroup/monoid. As an unfortunate side effect, this means that n • s, where n : ℕ, is ambiguous between pointwise scaling and repeated pointwise addition; the former has (2 : ℕ) • {1, 2} = {2, 4}, while the latter has (2 : ℕ) • {1, 2} = {2, 3, 4}. See note [pointwise nat action].

Appropriate definitions and results are also transported to the additive theory via to_additive.

Implementation notes #

Tags #

set multiplication, set addition, pointwise addition, pointwise multiplication, pointwise subtraction

0/1 as sets #

noncomputable def Set.one {α : Type u_2} [One α] :
One (Set α)

The set 1 : Set α is defined as {1} in locale Pointwise.

Equations
noncomputable def Set.zero {α : Type u_2} [Zero α] :
Zero (Set α)

The set 0 : Set α is defined as {0} in locale Pointwise.

Equations
theorem Set.singleton_one {α : Type u_2} [One α] :
{1} = 1
theorem Set.singleton_zero {α : Type u_2} [Zero α] :
{0} = 0
@[simp]
theorem Set.mem_one {α : Type u_2} [One α] {a : α} :
a 1 a = 1
@[simp]
theorem Set.mem_zero {α : Type u_2} [Zero α] {a : α} :
a 0 a = 0
theorem Set.one_mem_one {α : Type u_2} [One α] :
1 1
theorem Set.zero_mem_zero {α : Type u_2} [Zero α] :
0 0
@[simp]
theorem Set.one_subset {α : Type u_2} [One α] {s : Set α} :
1 s 1 s
@[simp]
theorem Set.zero_subset {α : Type u_2} [Zero α] {s : Set α} :
0 s 0 s
@[simp]
theorem Set.one_nonempty {α : Type u_2} [One α] :
@[simp]
theorem Set.zero_nonempty {α : Type u_2} [Zero α] :
@[simp]
theorem Set.image_one {α : Type u_2} {β : Type u_3} [One α] {f : αβ} :
f '' 1 = {f 1}
@[simp]
theorem Set.image_zero {α : Type u_2} {β : Type u_3} [Zero α] {f : αβ} :
f '' 0 = {f 0}
theorem Set.subset_one_iff_eq {α : Type u_2} [One α] {s : Set α} :
s 1 s = s = 1
theorem Set.subset_zero_iff_eq {α : Type u_2} [Zero α] {s : Set α} :
s 0 s = s = 0
theorem Set.Nonempty.subset_one_iff {α : Type u_2} [One α] {s : Set α} (h : s.Nonempty) :
s 1 s = 1
theorem Set.Nonempty.subset_zero_iff {α : Type u_2} [Zero α] {s : Set α} (h : s.Nonempty) :
s 0 s = 0
noncomputable def Set.singletonOneHom {α : Type u_2} [One α] :
OneHom α (Set α)

The singleton operation as a OneHom.

Equations
noncomputable def Set.singletonZeroHom {α : Type u_2} [Zero α] :
ZeroHom α (Set α)

The singleton operation as a ZeroHom.

Equations
@[simp]
theorem Set.image_op_one {α : Type u_2} [One α] :
theorem Set.image_op_zero {α : Type u_2} [Zero α] :
@[simp]
theorem Set.one_prod_one {α : Type u_2} {β : Type u_3} [One α] [One β] :
1 ×ˢ 1 = 1
@[simp]
theorem Set.zero_prod_zero {α : Type u_2} {β : Type u_3} [Zero α] [Zero β] :
0 ×ˢ 0 = 0
@[deprecated Set.zero_prod_zero (since := "2025-03-11")]
theorem Set.zero_sum_zero {α : Type u_2} {β : Type u_3} [Zero α] [Zero β] :
0 ×ˢ 0 = 0

Alias of Set.zero_prod_zero.

Set negation/inversion #

def Set.inv {α : Type u_2} [Inv α] :
Inv (Set α)

The pointwise inversion of set s⁻¹ is defined as {x | x⁻¹ ∈ s} in locale Pointwise. It is equal to {x⁻¹ | x ∈ s}, see Set.image_inv_eq_inv.

Equations
def Set.neg {α : Type u_2} [Neg α] :
Neg (Set α)

The pointwise negation of set -s is defined as {x | -x ∈ s} in locale Pointwise. It is equal to {-x | x ∈ s}, see Set.image_neg_eq_neg.

Equations
@[simp]
theorem Set.mem_inv {α : Type u_2} [Inv α] {s : Set α} {a : α} :
@[simp]
theorem Set.mem_neg {α : Type u_2} [Neg α] {s : Set α} {a : α} :
a -s -a s
@[simp]
theorem Set.inv_preimage {α : Type u_2} [Inv α] {s : Set α} :
@[simp]
theorem Set.neg_preimage {α : Type u_2} [Neg α] {s : Set α} :
@[simp]
theorem Set.inv_empty {α : Type u_2} [Inv α] :
@[simp]
theorem Set.neg_empty {α : Type u_2} [Neg α] :
@[simp]
theorem Set.inv_univ {α : Type u_2} [Inv α] :
@[simp]
theorem Set.neg_univ {α : Type u_2} [Neg α] :
@[simp]
theorem Set.inter_inv {α : Type u_2} [Inv α] {s t : Set α} :
@[simp]
theorem Set.inter_neg {α : Type u_2} [Neg α] {s t : Set α} :
-(s t) = -s -t
@[simp]
theorem Set.union_inv {α : Type u_2} [Inv α] {s t : Set α} :
@[simp]
theorem Set.union_neg {α : Type u_2} [Neg α] {s t : Set α} :
-(s t) = -s -t
@[simp]
theorem Set.compl_inv {α : Type u_2} [Inv α] {s : Set α} :
@[simp]
theorem Set.compl_neg {α : Type u_2} [Neg α] {s : Set α} :
-s = (-s)
@[simp]
theorem Set.inv_prod {α : Type u_2} {β : Type u_3} [Inv α] [Inv β] (s : Set α) (t : Set β) :
@[simp]
theorem Set.neg_prod {α : Type u_2} {β : Type u_3} [Neg α] [Neg β] (s : Set α) (t : Set β) :
-s ×ˢ t = (-s) ×ˢ (-t)
@[deprecated Set.neg_prod (since := "2025-03-11")]
theorem Set.neg_sum {α : Type u_2} {β : Type u_3} [Neg α] [Neg β] (s : Set α) (t : Set β) :
-s ×ˢ t = (-s) ×ˢ (-t)

Alias of Set.neg_prod.

theorem Set.inv_mem_inv {α : Type u_2} [InvolutiveInv α] {s : Set α} {a : α} :
theorem Set.neg_mem_neg {α : Type u_2} [InvolutiveNeg α] {s : Set α} {a : α} :
-a -s a s
@[simp]
theorem Set.nonempty_inv {α : Type u_2} [InvolutiveInv α] {s : Set α} :
@[simp]
theorem Set.nonempty_neg {α : Type u_2} [InvolutiveNeg α] {s : Set α} :
theorem Set.Nonempty.inv {α : Type u_2} [InvolutiveInv α] {s : Set α} (h : s.Nonempty) :
theorem Set.Nonempty.neg {α : Type u_2} [InvolutiveNeg α] {s : Set α} (h : s.Nonempty) :
@[simp]
theorem Set.image_inv_eq_inv {α : Type u_2} [InvolutiveInv α] {s : Set α} :
(fun (x : α) => x⁻¹) '' s = s⁻¹
@[simp]
theorem Set.image_neg_eq_neg {α : Type u_2} [InvolutiveNeg α] {s : Set α} :
(fun (x : α) => -x) '' s = -s
@[simp]
theorem Set.inv_eq_empty {α : Type u_2} [InvolutiveInv α] {s : Set α} :
@[simp]
theorem Set.neg_eq_empty {α : Type u_2} [InvolutiveNeg α] {s : Set α} :
-s = s =
noncomputable instance Set.involutiveInv {α : Type u_2} [InvolutiveInv α] :
Equations
noncomputable instance Set.involutiveNeg {α : Type u_2} [InvolutiveNeg α] :
Equations
@[simp]
theorem Set.inv_subset_inv {α : Type u_2} [InvolutiveInv α] {s t : Set α} :
@[simp]
theorem Set.neg_subset_neg {α : Type u_2} [InvolutiveNeg α] {s t : Set α} :
-s -t s t
theorem Set.inv_subset {α : Type u_2} [InvolutiveInv α] {s t : Set α} :
theorem Set.neg_subset {α : Type u_2} [InvolutiveNeg α] {s t : Set α} :
-s t s -t
@[simp]
theorem Set.inv_singleton {α : Type u_2} [InvolutiveInv α] (a : α) :
@[simp]
theorem Set.neg_singleton {α : Type u_2} [InvolutiveNeg α] (a : α) :
@[simp]
theorem Set.inv_insert {α : Type u_2} [InvolutiveInv α] (a : α) (s : Set α) :
@[simp]
theorem Set.neg_insert {α : Type u_2} [InvolutiveNeg α] (a : α) (s : Set α) :
-insert a s = insert (-a) (-s)
theorem Set.inv_range {α : Type u_2} [InvolutiveInv α] {ι : Sort u_5} {f : ια} :
(range f)⁻¹ = range fun (i : ι) => (f i)⁻¹
theorem Set.neg_range {α : Type u_2} [InvolutiveNeg α] {ι : Sort u_5} {f : ια} :
-range f = range fun (i : ι) => -f i

Set addition/multiplication #

def Set.mul {α : Type u_2} [Mul α] :
Mul (Set α)

The pointwise multiplication of sets s * t and t is defined as {x * y | x ∈ s, y ∈ t} in locale Pointwise.

Equations
def Set.add {α : Type u_2} [Add α] :
Add (Set α)

The pointwise addition of sets s + t is defined as {x + y | x ∈ s, y ∈ t} in locale Pointwise.

Equations
@[simp]
theorem Set.image2_mul {α : Type u_2} [Mul α] {s t : Set α} :
image2 (fun (x1 x2 : α) => x1 * x2) s t = s * t
@[simp]
theorem Set.image2_add {α : Type u_2} [Add α] {s t : Set α} :
image2 (fun (x1 x2 : α) => x1 + x2) s t = s + t
theorem Set.mem_mul {α : Type u_2} [Mul α] {s t : Set α} {a : α} :
a s * t xs, yt, x * y = a
theorem Set.mem_add {α : Type u_2} [Add α] {s t : Set α} {a : α} :
a s + t xs, yt, x + y = a
theorem Set.mul_mem_mul {α : Type u_2} [Mul α] {s t : Set α} {a b : α} :
a sb ta * b s * t
theorem Set.add_mem_add {α : Type u_2} [Add α] {s t : Set α} {a b : α} :
a sb ta + b s + t
theorem Set.image_mul_prod {α : Type u_2} [Mul α] {s t : Set α} :
(fun (x : α × α) => x.1 * x.2) '' s ×ˢ t = s * t
theorem Set.add_image_prod {α : Type u_2} [Add α] {s t : Set α} :
(fun (x : α × α) => x.1 + x.2) '' s ×ˢ t = s + t
@[simp]
theorem Set.empty_mul {α : Type u_2} [Mul α] {s : Set α} :
@[simp]
theorem Set.empty_add {α : Type u_2} [Add α] {s : Set α} :
@[simp]
theorem Set.mul_empty {α : Type u_2} [Mul α] {s : Set α} :
@[simp]
theorem Set.add_empty {α : Type u_2} [Add α] {s : Set α} :
@[simp]
theorem Set.mul_eq_empty {α : Type u_2} [Mul α] {s t : Set α} :
s * t = s = t =
@[simp]
theorem Set.add_eq_empty {α : Type u_2} [Add α] {s t : Set α} :
s + t = s = t =
@[simp]
theorem Set.mul_nonempty {α : Type u_2} [Mul α] {s t : Set α} :
@[simp]
theorem Set.add_nonempty {α : Type u_2} [Add α] {s t : Set α} :
theorem Set.Nonempty.mul {α : Type u_2} [Mul α] {s t : Set α} :
s.Nonemptyt.Nonempty(s * t).Nonempty
theorem Set.Nonempty.add {α : Type u_2} [Add α] {s t : Set α} :
s.Nonemptyt.Nonempty(s + t).Nonempty
theorem Set.Nonempty.of_mul_left {α : Type u_2} [Mul α] {s t : Set α} :
(s * t).Nonemptys.Nonempty
theorem Set.Nonempty.of_add_left {α : Type u_2} [Add α] {s t : Set α} :
(s + t).Nonemptys.Nonempty
theorem Set.Nonempty.of_mul_right {α : Type u_2} [Mul α] {s t : Set α} :
(s * t).Nonemptyt.Nonempty
theorem Set.Nonempty.of_add_right {α : Type u_2} [Add α] {s t : Set α} :
(s + t).Nonemptyt.Nonempty
@[simp]
theorem Set.mul_singleton {α : Type u_2} [Mul α] {s : Set α} {b : α} :
s * {b} = (fun (x : α) => x * b) '' s
@[simp]
theorem Set.add_singleton {α : Type u_2} [Add α] {s : Set α} {b : α} :
s + {b} = (fun (x : α) => x + b) '' s
@[simp]
theorem Set.singleton_mul {α : Type u_2} [Mul α] {t : Set α} {a : α} :
{a} * t = (fun (x : α) => a * x) '' t
@[simp]
theorem Set.singleton_add {α : Type u_2} [Add α] {t : Set α} {a : α} :
{a} + t = (fun (x : α) => a + x) '' t
theorem Set.singleton_mul_singleton {α : Type u_2} [Mul α] {a b : α} :
{a} * {b} = {a * b}
theorem Set.singleton_add_singleton {α : Type u_2} [Add α] {a b : α} :
{a} + {b} = {a + b}
theorem Set.mul_subset_mul {α : Type u_2} [Mul α] {s₁ s₂ t₁ t₂ : Set α} :
s₁ t₁s₂ t₂s₁ * s₂ t₁ * t₂
theorem Set.add_subset_add {α : Type u_2} [Add α] {s₁ s₂ t₁ t₂ : Set α} :
s₁ t₁s₂ t₂s₁ + s₂ t₁ + t₂
theorem Set.mul_subset_mul_left {α : Type u_2} [Mul α] {s t₁ t₂ : Set α} :
t₁ t₂s * t₁ s * t₂
theorem Set.add_subset_add_left {α : Type u_2} [Add α] {s t₁ t₂ : Set α} :
t₁ t₂s + t₁ s + t₂
theorem Set.mul_subset_mul_right {α : Type u_2} [Mul α] {s₁ s₂ t : Set α} :
s₁ s₂s₁ * t s₂ * t
theorem Set.add_subset_add_right {α : Type u_2} [Add α] {s₁ s₂ t : Set α} :
s₁ s₂s₁ + t s₂ + t
instance Set.instMulLeftMono {α : Type u_2} [Mul α] :
instance Set.instAddLeftMono {α : Type u_2} [Add α] :
instance Set.instMulRightMono {α : Type u_2} [Mul α] :
instance Set.instAddRightMono {α : Type u_2} [Add α] :
theorem Set.mul_subset_iff {α : Type u_2} [Mul α] {s t u : Set α} :
s * t u xs, yt, x * y u
theorem Set.add_subset_iff {α : Type u_2} [Add α] {s t u : Set α} :
s + t u xs, yt, x + y u
theorem Set.union_mul {α : Type u_2} [Mul α] {s₁ s₂ t : Set α} :
(s₁ s₂) * t = s₁ * t s₂ * t
theorem Set.union_add {α : Type u_2} [Add α] {s₁ s₂ t : Set α} :
s₁ s₂ + t = s₁ + t (s₂ + t)
theorem Set.mul_union {α : Type u_2} [Mul α] {s t₁ t₂ : Set α} :
s * (t₁ t₂) = s * t₁ s * t₂
theorem Set.add_union {α : Type u_2} [Add α] {s t₁ t₂ : Set α} :
s + (t₁ t₂) = s + t₁ (s + t₂)
theorem Set.inter_mul_subset {α : Type u_2} [Mul α] {s₁ s₂ t : Set α} :
s₁ s₂ * t s₁ * t (s₂ * t)
theorem Set.inter_add_subset {α : Type u_2} [Add α] {s₁ s₂ t : Set α} :
s₁ s₂ + t (s₁ + t) (s₂ + t)
theorem Set.mul_inter_subset {α : Type u_2} [Mul α] {s t₁ t₂ : Set α} :
s * (t₁ t₂) s * t₁ (s * t₂)
theorem Set.add_inter_subset {α : Type u_2} [Add α] {s t₁ t₂ : Set α} :
s + t₁ t₂ (s + t₁) (s + t₂)
theorem Set.inter_mul_union_subset_union {α : Type u_2} [Mul α] {s₁ s₂ t₁ t₂ : Set α} :
s₁ s₂ * (t₁ t₂) s₁ * t₁ s₂ * t₂
theorem Set.inter_add_union_subset_union {α : Type u_2} [Add α] {s₁ s₂ t₁ t₂ : Set α} :
s₁ s₂ + (t₁ t₂) s₁ + t₁ (s₂ + t₂)
theorem Set.union_mul_inter_subset_union {α : Type u_2} [Mul α] {s₁ s₂ t₁ t₂ : Set α} :
(s₁ s₂) * (t₁ t₂) s₁ * t₁ s₂ * t₂
theorem Set.union_add_inter_subset_union {α : Type u_2} [Add α] {s₁ s₂ t₁ t₂ : Set α} :
s₁ s₂ + t₁ t₂ s₁ + t₁ (s₂ + t₂)
noncomputable def Set.singletonMulHom {α : Type u_2} [Mul α] :
α →ₙ* Set α

The singleton operation as a MulHom.

Equations
noncomputable def Set.singletonAddHom {α : Type u_2} [Add α] :
α →ₙ+ Set α

The singleton operation as an AddHom.

Equations
@[simp]
@[simp]
@[simp]
theorem Set.singletonMulHom_apply {α : Type u_2} [Mul α] (a : α) :
@[simp]
theorem Set.singletonAddHom_apply {α : Type u_2} [Add α] (a : α) :
@[simp]
theorem Set.image_op_mul {α : Type u_2} [Mul α] {s t : Set α} :
@[simp]
theorem Set.image_op_add {α : Type u_2} [Add α] {s t : Set α} :
@[simp]
theorem Set.prod_mul_prod_comm {α : Type u_2} {β : Type u_3} [Mul α] [Mul β] (s₁ s₂ : Set α) (t₁ t₂ : Set β) :
s₁ ×ˢ t₁ * s₂ ×ˢ t₂ = (s₁ * s₂) ×ˢ (t₁ * t₂)
@[simp]
theorem Set.prod_add_prod_comm {α : Type u_2} {β : Type u_3} [Add α] [Add β] (s₁ s₂ : Set α) (t₁ t₂ : Set β) :
s₁ ×ˢ t₁ + s₂ ×ˢ t₂ = (s₁ + s₂) ×ˢ (t₁ + t₂)
@[deprecated Set.prod_add_prod_comm (since := "2025-03-11")]
theorem Set.sum_add_sum_comm {α : Type u_2} {β : Type u_3} [Add α] [Add β] (s₁ s₂ : Set α) (t₁ t₂ : Set β) :
s₁ ×ˢ t₁ + s₂ ×ˢ t₂ = (s₁ + s₂) ×ˢ (t₁ + t₂)

Alias of Set.prod_add_prod_comm.

Set subtraction/division #

def Set.div {α : Type u_2} [Div α] :
Div (Set α)

The pointwise division of sets s / t is defined as {x / y | x ∈ s, y ∈ t} in locale Pointwise.

Equations
def Set.sub {α : Type u_2} [Sub α] :
Sub (Set α)

The pointwise subtraction of sets s - t is defined as {x - y | x ∈ s, y ∈ t} in locale Pointwise.

Equations
@[simp]
theorem Set.image2_div {α : Type u_2} [Div α] {s t : Set α} :
image2 (fun (x1 x2 : α) => x1 / x2) s t = s / t
@[simp]
theorem Set.image2_sub {α : Type u_2} [Sub α] {s t : Set α} :
image2 (fun (x1 x2 : α) => x1 - x2) s t = s - t
theorem Set.mem_div {α : Type u_2} [Div α] {s t : Set α} {a : α} :
a s / t xs, yt, x / y = a
theorem Set.mem_sub {α : Type u_2} [Sub α] {s t : Set α} {a : α} :
a s - t xs, yt, x - y = a
theorem Set.div_mem_div {α : Type u_2} [Div α] {s t : Set α} {a b : α} :
a sb ta / b s / t
theorem Set.sub_mem_sub {α : Type u_2} [Sub α] {s t : Set α} {a b : α} :
a sb ta - b s - t
theorem Set.image_div_prod {α : Type u_2} [Div α] {s t : Set α} :
(fun (x : α × α) => x.1 / x.2) '' s ×ˢ t = s / t
theorem Set.sub_image_prod {α : Type u_2} [Sub α] {s t : Set α} :
(fun (x : α × α) => x.1 - x.2) '' s ×ˢ t = s - t
@[simp]
theorem Set.empty_div {α : Type u_2} [Div α] {s : Set α} :
@[simp]
theorem Set.empty_sub {α : Type u_2} [Sub α] {s : Set α} :
@[simp]
theorem Set.div_empty {α : Type u_2} [Div α] {s : Set α} :
@[simp]
theorem Set.sub_empty {α : Type u_2} [Sub α] {s : Set α} :
@[simp]
theorem Set.div_eq_empty {α : Type u_2} [Div α] {s t : Set α} :
s / t = s = t =
@[simp]
theorem Set.sub_eq_empty {α : Type u_2} [Sub α] {s t : Set α} :
s - t = s = t =
@[simp]
theorem Set.div_nonempty {α : Type u_2} [Div α] {s t : Set α} :
@[simp]
theorem Set.sub_nonempty {α : Type u_2} [Sub α] {s t : Set α} :
theorem Set.Nonempty.div {α : Type u_2} [Div α] {s t : Set α} :
s.Nonemptyt.Nonempty(s / t).Nonempty
theorem Set.Nonempty.sub {α : Type u_2} [Sub α] {s t : Set α} :
s.Nonemptyt.Nonempty(s - t).Nonempty
theorem Set.Nonempty.of_div_left {α : Type u_2} [Div α] {s t : Set α} :
(s / t).Nonemptys.Nonempty
theorem Set.Nonempty.of_sub_left {α : Type u_2} [Sub α] {s t : Set α} :
(s - t).Nonemptys.Nonempty
theorem Set.Nonempty.of_div_right {α : Type u_2} [Div α] {s t : Set α} :
(s / t).Nonemptyt.Nonempty
theorem Set.Nonempty.of_sub_right {α : Type u_2} [Sub α] {s t : Set α} :
(s - t).Nonemptyt.Nonempty
@[simp]
theorem Set.div_singleton {α : Type u_2} [Div α] {s : Set α} {b : α} :
s / {b} = (fun (x : α) => x / b) '' s
@[simp]
theorem Set.sub_singleton {α : Type u_2} [Sub α] {s : Set α} {b : α} :
s - {b} = (fun (x : α) => x - b) '' s
@[simp]
theorem Set.singleton_div {α : Type u_2} [Div α] {t : Set α} {a : α} :
{a} / t = (fun (x1 x2 : α) => x1 / x2) a '' t
@[simp]
theorem Set.singleton_sub {α : Type u_2} [Sub α] {t : Set α} {a : α} :
{a} - t = (fun (x1 x2 : α) => x1 - x2) a '' t
theorem Set.singleton_div_singleton {α : Type u_2} [Div α] {a b : α} :
{a} / {b} = {a / b}
theorem Set.singleton_sub_singleton {α : Type u_2} [Sub α] {a b : α} :
{a} - {b} = {a - b}
theorem Set.div_subset_div {α : Type u_2} [Div α] {s₁ s₂ t₁ t₂ : Set α} :
s₁ t₁s₂ t₂s₁ / s₂ t₁ / t₂
theorem Set.sub_subset_sub {α : Type u_2} [Sub α] {s₁ s₂ t₁ t₂ : Set α} :
s₁ t₁s₂ t₂s₁ - s₂ t₁ - t₂
theorem Set.div_subset_div_left {α : Type u_2} [Div α] {s t₁ t₂ : Set α} :
t₁ t₂s / t₁ s / t₂
theorem Set.sub_subset_sub_left {α : Type u_2} [Sub α] {s t₁ t₂ : Set α} :
t₁ t₂s - t₁ s - t₂
theorem Set.div_subset_div_right {α : Type u_2} [Div α] {s₁ s₂ t : Set α} :
s₁ s₂s₁ / t s₂ / t
theorem Set.sub_subset_sub_right {α : Type u_2} [Sub α] {s₁ s₂ t : Set α} :
s₁ s₂s₁ - t s₂ - t
theorem Set.div_subset_iff {α : Type u_2} [Div α] {s t u : Set α} :
s / t u xs, yt, x / y u
theorem Set.sub_subset_iff {α : Type u_2} [Sub α] {s t u : Set α} :
s - t u xs, yt, x - y u
theorem Set.union_div {α : Type u_2} [Div α] {s₁ s₂ t : Set α} :
(s₁ s₂) / t = s₁ / t s₂ / t
theorem Set.union_sub {α : Type u_2} [Sub α] {s₁ s₂ t : Set α} :
s₁ s₂ - t = s₁ - t (s₂ - t)
theorem Set.div_union {α : Type u_2} [Div α] {s t₁ t₂ : Set α} :
s / (t₁ t₂) = s / t₁ s / t₂
theorem Set.sub_union {α : Type u_2} [Sub α] {s t₁ t₂ : Set α} :
s - (t₁ t₂) = s - t₁ (s - t₂)
theorem Set.inter_div_subset {α : Type u_2} [Div α] {s₁ s₂ t : Set α} :
s₁ s₂ / t s₁ / t (s₂ / t)
theorem Set.inter_sub_subset {α : Type u_2} [Sub α] {s₁ s₂ t : Set α} :
s₁ s₂ - t (s₁ - t) (s₂ - t)
theorem Set.div_inter_subset {α : Type u_2} [Div α] {s t₁ t₂ : Set α} :
s / (t₁ t₂) s / t₁ (s / t₂)
theorem Set.sub_inter_subset {α : Type u_2} [Sub α] {s t₁ t₂ : Set α} :
s - t₁ t₂ (s - t₁) (s - t₂)
theorem Set.inter_div_union_subset_union {α : Type u_2} [Div α] {s₁ s₂ t₁ t₂ : Set α} :
s₁ s₂ / (t₁ t₂) s₁ / t₁ s₂ / t₂
theorem Set.inter_sub_union_subset_union {α : Type u_2} [Sub α] {s₁ s₂ t₁ t₂ : Set α} :
s₁ s₂ - (t₁ t₂) s₁ - t₁ (s₂ - t₂)
theorem Set.union_div_inter_subset_union {α : Type u_2} [Div α] {s₁ s₂ t₁ t₂ : Set α} :
(s₁ s₂) / (t₁ t₂) s₁ / t₁ s₂ / t₂
theorem Set.union_sub_inter_subset_union {α : Type u_2} [Sub α] {s₁ s₂ t₁ t₂ : Set α} :
s₁ s₂ - t₁ t₂ s₁ - t₁ (s₂ - t₂)
def Set.NSMul {α : Type u_2} [Zero α] [Add α] :
SMul (Set α)

Repeated pointwise addition (not the same as pointwise repeated addition!) of a Set. See note [pointwise nat action].

Equations
def Set.NPow {α : Type u_2} [One α] [Mul α] :
Pow (Set α)

Repeated pointwise multiplication (not the same as pointwise repeated multiplication!) of a Set. See note [pointwise nat action].

Equations
def Set.ZSMul {α : Type u_2} [Zero α] [Add α] [Neg α] :
SMul (Set α)

Repeated pointwise addition/subtraction (not the same as pointwise repeated addition/subtraction!) of a Set. See note [pointwise nat action].

Equations
def Set.ZPow {α : Type u_2} [One α] [Mul α] [Inv α] :
Pow (Set α)

Repeated pointwise multiplication/division (not the same as pointwise repeated multiplication/division!) of a Set. See note [pointwise nat action].

Equations
noncomputable def Set.semigroup {α : Type u_2} [Semigroup α] :

Set α is a Semigroup under pointwise operations if α is.

Equations
noncomputable def Set.addSemigroup {α : Type u_2} [AddSemigroup α] :

Set α is an AddSemigroup under pointwise operations if α is.

Equations
noncomputable def Set.commSemigroup {α : Type u_2} [CommSemigroup α] :

Set α is a CommSemigroup under pointwise operations if α is.

Equations
noncomputable def Set.addCommSemigroup {α : Type u_2} [AddCommSemigroup α] :

Set α is an AddCommSemigroup under pointwise operations if α is.

Equations
theorem Set.inter_mul_union_subset {α : Type u_2} [CommSemigroup α] {s t : Set α} :
s t * (s t) s * t
theorem Set.inter_add_union_subset {α : Type u_2} [AddCommSemigroup α] {s t : Set α} :
s t + (s t) s + t
theorem Set.union_mul_inter_subset {α : Type u_2} [CommSemigroup α] {s t : Set α} :
(s t) * (s t) s * t
theorem Set.union_add_inter_subset {α : Type u_2} [AddCommSemigroup α] {s t : Set α} :
s t + s t s + t
noncomputable def Set.mulOneClass {α : Type u_2} [MulOneClass α] :

Set α is a MulOneClass under pointwise operations if α is.

Equations
noncomputable def Set.addZeroClass {α : Type u_2} [AddZeroClass α] :

Set α is an AddZeroClass under pointwise operations if α is.

Equations
theorem Set.subset_mul_left {α : Type u_2} [MulOneClass α] (s : Set α) {t : Set α} (ht : 1 t) :
s s * t
theorem Set.subset_add_left {α : Type u_2} [AddZeroClass α] (s : Set α) {t : Set α} (ht : 0 t) :
s s + t
theorem Set.subset_mul_right {α : Type u_2} [MulOneClass α] {s : Set α} (t : Set α) (hs : 1 s) :
t s * t
theorem Set.subset_add_right {α : Type u_2} [AddZeroClass α] {s : Set α} (t : Set α) (hs : 0 s) :
t s + t
noncomputable def Set.singletonMonoidHom {α : Type u_2} [MulOneClass α] :
α →* Set α

The singleton operation as a MonoidHom.

Equations
noncomputable def Set.singletonAddMonoidHom {α : Type u_2} [AddZeroClass α] :
α →+ Set α

The singleton operation as an AddMonoidHom.

Equations
@[simp]
noncomputable def Set.monoid {α : Type u_2} [Monoid α] :
Monoid (Set α)

Set α is a Monoid under pointwise operations if α is.

Equations
noncomputable def Set.addMonoid {α : Type u_2} [AddMonoid α] :

Set α is an AddMonoid under pointwise operations if α is.

Equations
theorem Set.pow_right_monotone {α : Type u_2} [Monoid α] {s : Set α} (hs : 1 s) :
Monotone fun (x : ) => s ^ x
theorem Set.nsmul_right_monotone {α : Type u_2} [AddMonoid α] {s : Set α} (hs : 0 s) :
Monotone fun (x : ) => x s
theorem Set.pow_subset_pow_left {α : Type u_2} [Monoid α] {s t : Set α} {n : } (hst : s t) :
s ^ n t ^ n
theorem Set.nsmul_subset_nsmul_left {α : Type u_2} [AddMonoid α] {s t : Set α} {n : } (hst : s t) :
n s n t
theorem Set.pow_subset_pow_right {α : Type u_2} [Monoid α] {s : Set α} {m n : } (hs : 1 s) (hmn : m n) :
s ^ m s ^ n
theorem Set.nsmul_subset_nsmul_right {α : Type u_2} [AddMonoid α] {s : Set α} {m n : } (hs : 0 s) (hmn : m n) :
m s n s
theorem Set.pow_subset_pow {α : Type u_2} [Monoid α] {s t : Set α} {m n : } (hst : s t) (ht : 1 t) (hmn : m n) :
s ^ m t ^ n
theorem Set.nsmul_subset_nsmul {α : Type u_2} [AddMonoid α] {s t : Set α} {m n : } (hst : s t) (ht : 0 t) (hmn : m n) :
m s n t
theorem Set.subset_pow {α : Type u_2} [Monoid α] {s : Set α} {n : } (hs : 1 s) (hn : n 0) :
s s ^ n
theorem Set.subset_nsmul {α : Type u_2} [AddMonoid α] {s : Set α} {n : } (hs : 0 s) (hn : n 0) :
s n s
@[deprecated Set.pow_subset_pow_right (since := "2024-11-19")]
theorem Set.pow_subset_pow_of_one_mem {α : Type u_2} [Monoid α] {s : Set α} {m n : } (hs : 1 s) (hmn : m n) :
s ^ m s ^ n

Alias of Set.pow_subset_pow_right.

@[deprecated Set.nsmul_subset_nsmul_right (since := "2024-11-19")]
theorem Set.nsmul_subset_nsmul_of_zero_mem {α : Type u_2} [AddMonoid α] {s : Set α} {m n : } (hs : 0 s) (hmn : m n) :
m s n s

Alias of Set.nsmul_subset_nsmul_right.

theorem Set.pow_subset_pow_mul_of_sq_subset_mul {α : Type u_2} [Monoid α] {s t : Set α} {n : } (hst : s ^ 2 t * s) (hn : n 0) :
s ^ n t ^ (n - 1) * s
theorem Set.nsmul_subset_nsmul_add_of_sq_subset_add {α : Type u_2} [AddMonoid α] {s t : Set α} {n : } (hst : 2 s t + s) (hn : n 0) :
n s (n - 1) t + s
@[simp]
theorem Set.empty_pow {α : Type u_2} [Monoid α] {n : } (hn : n 0) :
@[simp]
theorem Set.nsmul_empty {α : Type u_2} [AddMonoid α] {n : } (hn : n 0) :
@[deprecated Set.nsmul_empty (since := "2024-10-21")]
theorem Set.empty_nsmul {α : Type u_2} [AddMonoid α] {n : } (hn : n 0) :

Alias of Set.nsmul_empty.

theorem Set.Nonempty.pow {α : Type u_2} [Monoid α] {s : Set α} (hs : s.Nonempty) {n : } :
(s ^ n).Nonempty
theorem Set.Nonempty.nsmul {α : Type u_2} [AddMonoid α] {s : Set α} (hs : s.Nonempty) {n : } :
@[simp]
theorem Set.pow_eq_empty {α : Type u_2} [Monoid α] {s : Set α} {n : } :
s ^ n = s = n 0
@[simp]
theorem Set.nsmul_eq_empty {α : Type u_2} [AddMonoid α] {s : Set α} {n : } :
n s = s = n 0
@[simp]
theorem Set.singleton_pow {α : Type u_2} [Monoid α] (a : α) (n : ) :
{a} ^ n = {a ^ n}
@[simp]
theorem Set.nsmul_singleton {α : Type u_2} [AddMonoid α] (a : α) (n : ) :
n {a} = {n a}
theorem Set.pow_mem_pow {α : Type u_2} [Monoid α] {s : Set α} {a : α} {n : } (ha : a s) :
a ^ n s ^ n
theorem Set.nsmul_mem_nsmul {α : Type u_2} [AddMonoid α] {s : Set α} {a : α} {n : } (ha : a s) :
n a n s
theorem Set.one_mem_pow {α : Type u_2} [Monoid α] {s : Set α} {n : } (hs : 1 s) :
1 s ^ n
theorem Set.zero_mem_nsmul {α : Type u_2} [AddMonoid α] {s : Set α} {n : } (hs : 0 s) :
0 n s
theorem Set.inter_pow_subset {α : Type u_2} [Monoid α] {s t : Set α} {n : } :
(s t) ^ n s ^ n t ^ n
theorem Set.inter_nsmul_subset {α : Type u_2} [AddMonoid α] {s t : Set α} {n : } :
n (s t) n s n t
theorem Set.mul_univ_of_one_mem {α : Type u_2} [Monoid α] {s : Set α} (hs : 1 s) :
theorem Set.add_univ_of_zero_mem {α : Type u_2} [AddMonoid α] {s : Set α} (hs : 0 s) :
theorem Set.univ_mul_of_one_mem {α : Type u_2} [Monoid α] {t : Set α} (ht : 1 t) :
theorem Set.univ_add_of_zero_mem {α : Type u_2} [AddMonoid α] {t : Set α} (ht : 0 t) :
@[simp]
theorem Set.univ_mul_univ {α : Type u_2} [Monoid α] :
@[simp]
theorem Set.univ_add_univ {α : Type u_2} [AddMonoid α] :
@[simp]
theorem Set.univ_pow {α : Type u_2} [Monoid α] {n : } :
n 0univ ^ n = univ
@[simp]
theorem Set.nsmul_univ {α : Type u_2} [AddMonoid α] {n : } :
n 0n univ = univ
theorem IsUnit.set {α : Type u_2} [Monoid α] {a : α} :
theorem IsAddUnit.set {α : Type u_2} [AddMonoid α] {a : α} :
theorem Set.prod_pow {α : Type u_2} {β : Type u_3} [Monoid α] [Monoid β] (s : Set α) (t : Set β) (n : ) :
s ×ˢ t ^ n = (s ^ n) ×ˢ (t ^ n)
theorem Set.nsmul_prod {α : Type u_2} {β : Type u_3} [AddMonoid α] [AddMonoid β] (s : Set α) (t : Set β) (n : ) :
n s ×ˢ t = (n s) ×ˢ (n t)
@[deprecated Set.nsmul_prod (since := "2025-02-17")]
theorem Set.sum_nsmul {α : Type u_2} {β : Type u_3} [AddMonoid α] [AddMonoid β] (s : Set α) (t : Set β) (n : ) :
n s ×ˢ t = (n s) ×ˢ (n t)

Alias of Set.nsmul_prod.

theorem Set.Nontrivial.mul_left {α : Type u_2} [Mul α] [IsLeftCancelMul α] {s t : Set α} :
t.Nontrivials.Nonempty(s * t).Nontrivial
theorem Set.Nontrivial.add_left {α : Type u_2} [Add α] [IsLeftCancelAdd α] {s t : Set α} :
t.Nontrivials.Nonempty(s + t).Nontrivial
theorem Set.Nontrivial.mul {α : Type u_2} [Mul α] [IsLeftCancelMul α] {s t : Set α} (hs : s.Nontrivial) (ht : t.Nontrivial) :
theorem Set.Nontrivial.add {α : Type u_2} [Add α] [IsLeftCancelAdd α] {s t : Set α} (hs : s.Nontrivial) (ht : t.Nontrivial) :
theorem Set.Nontrivial.mul_right {α : Type u_2} [Mul α] [IsRightCancelMul α] {s t : Set α} :
s.Nontrivialt.Nonempty(s * t).Nontrivial
theorem Set.Nontrivial.add_right {α : Type u_2} [Add α] [IsRightCancelAdd α] {s t : Set α} :
s.Nontrivialt.Nonempty(s + t).Nontrivial
theorem Set.Nontrivial.pow {α : Type u_2} [CancelMonoid α] {s : Set α} (hs : s.Nontrivial) {n : } :
n 0(s ^ n).Nontrivial
theorem Set.Nontrivial.nsmul {α : Type u_2} [AddCancelMonoid α] {s : Set α} (hs : s.Nontrivial) {n : } :
n 0(n s).Nontrivial
noncomputable def Set.commMonoid {α : Type u_2} [CommMonoid α] :

Set α is a CommMonoid under pointwise operations if α is.

Equations
noncomputable def Set.addCommMonoid {α : Type u_2} [AddCommMonoid α] :

Set α is an AddCommMonoid under pointwise operations if α is.

Equations
theorem Set.mul_eq_one_iff {α : Type u_2} [DivisionMonoid α] {s t : Set α} :
s * t = 1 ∃ (a : α) (b : α), s = {a} t = {b} a * b = 1
theorem Set.add_eq_zero_iff {α : Type u_2} [SubtractionMonoid α] {s t : Set α} :
s + t = 0 ∃ (a : α) (b : α), s = {a} t = {b} a + b = 0
noncomputable def Set.divisionMonoid {α : Type u_2} [DivisionMonoid α] :

Set α is a division monoid under pointwise operations if α is.

Equations
  • One or more equations did not get rendered due to their size.
noncomputable def Set.subtractionMonoid {α : Type u_2} [SubtractionMonoid α] :

Set α is a subtraction monoid under pointwise operations if α is.

Equations
  • One or more equations did not get rendered due to their size.
@[simp]
theorem Set.isUnit_iff {α : Type u_2} [DivisionMonoid α] {s : Set α} :
IsUnit s ∃ (a : α), s = {a} IsUnit a
@[simp]
theorem Set.isAddUnit_iff {α : Type u_2} [SubtractionMonoid α] {s : Set α} :
IsAddUnit s ∃ (a : α), s = {a} IsAddUnit a
@[simp]
@[simp]
theorem Set.subset_div_left {α : Type u_2} [DivisionMonoid α] {s t : Set α} (ht : 1 t) :
s s / t
theorem Set.subset_sub_left {α : Type u_2} [SubtractionMonoid α] {s t : Set α} (ht : 0 t) :
s s - t
theorem Set.inv_subset_div_right {α : Type u_2} [DivisionMonoid α] {s t : Set α} (hs : 1 s) :
t⁻¹ s / t
theorem Set.neg_subset_sub_right {α : Type u_2} [SubtractionMonoid α] {s t : Set α} (hs : 0 s) :
-t s - t
@[simp]
theorem Set.empty_zpow {α : Type u_2} [DivisionMonoid α] {n : } (hn : n 0) :
@[simp]
theorem Set.zsmul_empty {α : Type u_2} [SubtractionMonoid α] {n : } (hn : n 0) :
theorem Set.Nonempty.zpow {α : Type u_2} [DivisionMonoid α] {s : Set α} (hs : s.Nonempty) {n : } :
(s ^ n).Nonempty
theorem Set.Nonempty.zsmul {α : Type u_2} [SubtractionMonoid α] {s : Set α} (hs : s.Nonempty) {n : } :
@[simp]
theorem Set.zpow_eq_empty {α : Type u_2} [DivisionMonoid α] {s : Set α} {n : } :
s ^ n = s = n 0
@[simp]
theorem Set.zsmul_eq_empty {α : Type u_2} [SubtractionMonoid α] {s : Set α} {n : } :
n s = s = n 0
@[simp]
theorem Set.singleton_zpow {α : Type u_2} [DivisionMonoid α] (a : α) (n : ) :
{a} ^ n = {a ^ n}
@[simp]
theorem Set.zsmul_singleton {α : Type u_2} [SubtractionMonoid α] (a : α) (n : ) :
n {a} = {n a}
noncomputable def Set.divisionCommMonoid {α : Type u_2} [DivisionCommMonoid α] :

Set α is a commutative division monoid under pointwise operations if α is.

Equations

Set α is a commutative subtraction monoid under pointwise operations if α is.

Equations

Note that Set is not a Group because s / s ≠ 1 in general.

@[simp]
theorem Set.one_mem_div_iff {α : Type u_2} [Group α] {s t : Set α} :
1 s / t ¬Disjoint s t
@[simp]
theorem Set.zero_mem_sub_iff {α : Type u_2} [AddGroup α] {s t : Set α} :
0 s - t ¬Disjoint s t
@[simp]
theorem Set.one_mem_inv_mul_iff {α : Type u_2} [Group α] {s t : Set α} :
@[simp]
theorem Set.zero_mem_neg_add_iff {α : Type u_2} [AddGroup α] {s t : Set α} :
0 -t + s ¬Disjoint s t
theorem Set.not_one_mem_div_iff {α : Type u_2} [Group α] {s t : Set α} :
1s / t Disjoint s t
theorem Set.not_zero_mem_sub_iff {α : Type u_2} [AddGroup α] {s t : Set α} :
0s - t Disjoint s t
theorem Set.not_one_mem_inv_mul_iff {α : Type u_2} [Group α] {s t : Set α} :
1t⁻¹ * s Disjoint s t
theorem Set.not_zero_mem_neg_add_iff {α : Type u_2} [AddGroup α] {s t : Set α} :
0-t + s Disjoint s t
theorem Disjoint.one_not_mem_div_set {α : Type u_2} [Group α] {s t : Set α} :
Disjoint s t1s / t

Alias of the reverse direction of Set.not_one_mem_div_iff.

theorem Disjoint.zero_not_mem_sub_set {α : Type u_2} [AddGroup α] {s t : Set α} :
Disjoint s t0s - t
theorem Set.Nonempty.one_mem_div {α : Type u_2} [Group α] {s : Set α} (h : s.Nonempty) :
1 s / s
theorem Set.Nonempty.zero_mem_sub {α : Type u_2} [AddGroup α] {s : Set α} (h : s.Nonempty) :
0 s - s
theorem Set.isUnit_singleton {α : Type u_2} [Group α] (a : α) :
theorem Set.isAddUnit_singleton {α : Type u_2} [AddGroup α] (a : α) :
@[simp]
theorem Set.isUnit_iff_singleton {α : Type u_2} [Group α] {s : Set α} :
IsUnit s ∃ (a : α), s = {a}
@[simp]
theorem Set.isAddUnit_iff_singleton {α : Type u_2} [AddGroup α] {s : Set α} :
IsAddUnit s ∃ (a : α), s = {a}
@[simp]
theorem Set.image_mul_left {α : Type u_2} [Group α] {t : Set α} {a : α} :
(fun (x : α) => a * x) '' t = (fun (x : α) => a⁻¹ * x) ⁻¹' t
@[simp]
theorem Set.image_add_left {α : Type u_2} [AddGroup α] {t : Set α} {a : α} :
(fun (x : α) => a + x) '' t = (fun (x : α) => -a + x) ⁻¹' t
@[simp]
theorem Set.image_mul_right {α : Type u_2} [Group α] {t : Set α} {b : α} :
(fun (x : α) => x * b) '' t = (fun (x : α) => x * b⁻¹) ⁻¹' t
@[simp]
theorem Set.image_add_right {α : Type u_2} [AddGroup α] {t : Set α} {b : α} :
(fun (x : α) => x + b) '' t = (fun (x : α) => x + -b) ⁻¹' t
theorem Set.image_mul_left' {α : Type u_2} [Group α] {t : Set α} {a : α} :
(fun (x : α) => a⁻¹ * x) '' t = (fun (x : α) => a * x) ⁻¹' t
theorem Set.image_add_left' {α : Type u_2} [AddGroup α] {t : Set α} {a : α} :
(fun (x : α) => -a + x) '' t = (fun (x : α) => a + x) ⁻¹' t
theorem Set.image_mul_right' {α : Type u_2} [Group α] {t : Set α} {b : α} :
(fun (x : α) => x * b⁻¹) '' t = (fun (x : α) => x * b) ⁻¹' t
theorem Set.image_add_right' {α : Type u_2} [AddGroup α] {t : Set α} {b : α} :
(fun (x : α) => x + -b) '' t = (fun (x : α) => x + b) ⁻¹' t
@[simp]
theorem Set.preimage_mul_left_singleton {α : Type u_2} [Group α] {a b : α} :
(fun (x : α) => a * x) ⁻¹' {b} = {a⁻¹ * b}
@[simp]
theorem Set.preimage_add_left_singleton {α : Type u_2} [AddGroup α] {a b : α} :
(fun (x : α) => a + x) ⁻¹' {b} = {-a + b}
@[simp]
theorem Set.preimage_mul_right_singleton {α : Type u_2} [Group α] {a b : α} :
(fun (x : α) => x * a) ⁻¹' {b} = {b * a⁻¹}
@[simp]
theorem Set.preimage_add_right_singleton {α : Type u_2} [AddGroup α] {a b : α} :
(fun (x : α) => x + a) ⁻¹' {b} = {b + -a}
@[simp]
theorem Set.preimage_mul_left_one {α : Type u_2} [Group α] {a : α} :
(fun (x : α) => a * x) ⁻¹' 1 = {a⁻¹}
@[simp]
theorem Set.preimage_add_left_zero {α : Type u_2} [AddGroup α] {a : α} :
(fun (x : α) => a + x) ⁻¹' 0 = {-a}
@[simp]
theorem Set.preimage_mul_right_one {α : Type u_2} [Group α] {b : α} :
(fun (x : α) => x * b) ⁻¹' 1 = {b⁻¹}
@[simp]
theorem Set.preimage_add_right_zero {α : Type u_2} [AddGroup α] {b : α} :
(fun (x : α) => x + b) ⁻¹' 0 = {-b}
theorem Set.preimage_mul_left_one' {α : Type u_2} [Group α] {a : α} :
(fun (x : α) => a⁻¹ * x) ⁻¹' 1 = {a}
theorem Set.preimage_add_left_zero' {α : Type u_2} [AddGroup α] {a : α} :
(fun (x : α) => -a + x) ⁻¹' 0 = {a}
theorem Set.preimage_mul_right_one' {α : Type u_2} [Group α] {b : α} :
(fun (x : α) => x * b⁻¹) ⁻¹' 1 = {b}
theorem Set.preimage_add_right_zero' {α : Type u_2} [AddGroup α] {b : α} :
(fun (x : α) => x + -b) ⁻¹' 0 = {b}
@[simp]
theorem Set.mul_univ {α : Type u_2} [Group α] {s : Set α} (hs : s.Nonempty) :
@[simp]
theorem Set.add_univ {α : Type u_2} [AddGroup α] {s : Set α} (hs : s.Nonempty) :
@[simp]
theorem Set.univ_mul {α : Type u_2} [Group α] {t : Set α} (ht : t.Nonempty) :
@[simp]
theorem Set.univ_add {α : Type u_2} [AddGroup α] {t : Set α} (ht : t.Nonempty) :
theorem Set.image_inv {F : Type u_1} {α : Type u_2} {β : Type u_3} [Group α] [DivisionMonoid β] [FunLike F α β] [MonoidHomClass F α β] (f : F) (s : Set α) :
f '' s⁻¹ = (f '' s)⁻¹
theorem Set.image_neg {F : Type u_1} {α : Type u_2} {β : Type u_3} [AddGroup α] [SubtractionMonoid β] [FunLike F α β] [AddMonoidHomClass F α β] (f : F) (s : Set α) :
f '' (-s) = -f '' s
theorem Set.image_mul {F : Type u_1} {α : Type u_2} {β : Type u_3} [Mul α] [Mul β] [FunLike F α β] [MulHomClass F α β] (m : F) {s t : Set α} :
m '' (s * t) = m '' s * m '' t
theorem Set.image_add {F : Type u_1} {α : Type u_2} {β : Type u_3} [Add α] [Add β] [FunLike F α β] [AddHomClass F α β] (m : F) {s t : Set α} :
m '' (s + t) = m '' s + m '' t
theorem Set.mul_subset_range {F : Type u_1} {α : Type u_2} {β : Type u_3} [Mul α] [Mul β] [FunLike F α β] [MulHomClass F α β] (m : F) {s t : Set β} (hs : s range m) (ht : t range m) :
s * t range m
theorem Set.add_subset_range {F : Type u_1} {α : Type u_2} {β : Type u_3} [Add α] [Add β] [FunLike F α β] [AddHomClass F α β] (m : F) {s t : Set β} (hs : s range m) (ht : t range m) :
s + t range m
theorem Set.preimage_mul_preimage_subset {F : Type u_1} {α : Type u_2} {β : Type u_3} [Mul α] [Mul β] [FunLike F α β] [MulHomClass F α β] (m : F) {s t : Set β} :
m ⁻¹' s * m ⁻¹' t m ⁻¹' (s * t)
theorem Set.preimage_add_preimage_subset {F : Type u_1} {α : Type u_2} {β : Type u_3} [Add α] [Add β] [FunLike F α β] [AddHomClass F α β] (m : F) {s t : Set β} :
m ⁻¹' s + m ⁻¹' t m ⁻¹' (s + t)
theorem Set.preimage_mul {F : Type u_1} {α : Type u_2} {β : Type u_3} [Mul α] [Mul β] [FunLike F α β] [MulHomClass F α β] (m : F) (hm : Function.Injective m) {s t : Set β} (hs : s range m) (ht : t range m) :
m ⁻¹' (s * t) = m ⁻¹' s * m ⁻¹' t
theorem Set.preimage_add {F : Type u_1} {α : Type u_2} {β : Type u_3} [Add α] [Add β] [FunLike F α β] [AddHomClass F α β] (m : F) (hm : Function.Injective m) {s t : Set β} (hs : s range m) (ht : t range m) :
m ⁻¹' (s + t) = m ⁻¹' s + m ⁻¹' t
theorem Set.image_pow_of_ne_zero {F : Type u_1} {α : Type u_2} {β : Type u_3} [Monoid α] [Monoid β] [FunLike F α β] [MulHomClass F α β] {n : } :
n 0∀ (f : F) (s : Set α), f '' (s ^ n) = (f '' s) ^ n
theorem Set.image_nsmul_of_ne_zero {F : Type u_1} {α : Type u_2} {β : Type u_3} [AddMonoid α] [AddMonoid β] [FunLike F α β] [AddHomClass F α β] {n : } :
n 0∀ (f : F) (s : Set α), f '' (n s) = n f '' s
theorem Set.image_pow {F : Type u_1} {α : Type u_2} {β : Type u_3} [Monoid α] [Monoid β] [FunLike F α β] [MonoidHomClass F α β] (f : F) (s : Set α) (n : ) :
f '' (s ^ n) = (f '' s) ^ n
theorem Set.image_nsmul {F : Type u_1} {α : Type u_2} {β : Type u_3} [AddMonoid α] [AddMonoid β] [FunLike F α β] [AddMonoidHomClass F α β] (f : F) (s : Set α) (n : ) :
f '' (n s) = n f '' s
theorem Set.image_div {F : Type u_1} {α : Type u_2} {β : Type u_3} [Group α] [DivisionMonoid β] [FunLike F α β] [MonoidHomClass F α β] (m : F) {s t : Set α} :
m '' (s / t) = m '' s / m '' t
theorem Set.image_sub {F : Type u_1} {α : Type u_2} {β : Type u_3} [AddGroup α] [SubtractionMonoid β] [FunLike F α β] [AddMonoidHomClass F α β] (m : F) {s t : Set α} :
m '' (s - t) = m '' s - m '' t
theorem Set.div_subset_range {F : Type u_1} {α : Type u_2} {β : Type u_3} [Group α] [DivisionMonoid β] [FunLike F α β] [MonoidHomClass F α β] (m : F) {s t : Set β} (hs : s range m) (ht : t range m) :
s / t range m
theorem Set.sub_subset_range {F : Type u_1} {α : Type u_2} {β : Type u_3} [AddGroup α] [SubtractionMonoid β] [FunLike F α β] [AddMonoidHomClass F α β] (m : F) {s t : Set β} (hs : s range m) (ht : t range m) :
s - t range m
theorem Set.preimage_div_preimage_subset {F : Type u_1} {α : Type u_2} {β : Type u_3} [Group α] [DivisionMonoid β] [FunLike F α β] [MonoidHomClass F α β] (m : F) {s t : Set β} :
m ⁻¹' s / m ⁻¹' t m ⁻¹' (s / t)
theorem Set.preimage_sub_preimage_subset {F : Type u_1} {α : Type u_2} {β : Type u_3} [AddGroup α] [SubtractionMonoid β] [FunLike F α β] [AddMonoidHomClass F α β] (m : F) {s t : Set β} :
m ⁻¹' s - m ⁻¹' t m ⁻¹' (s - t)
theorem Set.preimage_div {F : Type u_1} {α : Type u_2} {β : Type u_3} [Group α] [DivisionMonoid β] [FunLike F α β] [MonoidHomClass F α β] (m : F) (hm : Function.Injective m) {s t : Set β} (hs : s range m) (ht : t range m) :
m ⁻¹' (s / t) = m ⁻¹' s / m ⁻¹' t
theorem Set.preimage_sub {F : Type u_1} {α : Type u_2} {β : Type u_3} [AddGroup α] [SubtractionMonoid β] [FunLike F α β] [AddMonoidHomClass F α β] (m : F) (hm : Function.Injective m) {s t : Set β} (hs : s range m) (ht : t range m) :
m ⁻¹' (s - t) = m ⁻¹' s - m ⁻¹' t
@[simp]
theorem Set.inv_pi {ι : Type u_5} {α : ιType u_6} [(i : ι) → Inv (α i)] (s : Set ι) (t : (i : ι) → Set (α i)) :
(s.pi t)⁻¹ = s.pi fun (i : ι) => (t i)⁻¹
@[simp]
theorem Set.neg_pi {ι : Type u_5} {α : ιType u_6} [(i : ι) → Neg (α i)] (s : Set ι) (t : (i : ι) → Set (α i)) :
-s.pi t = s.pi fun (i : ι) => -t i
theorem Set.MapsTo.mul {α : Type u_2} {β : Type u_3} [Mul β] {A : Set α} {B₁ B₂ : Set β} {f₁ f₂ : αβ} (h₁ : MapsTo f₁ A B₁) (h₂ : MapsTo f₂ A B₂) :
MapsTo (f₁ * f₂) A (B₁ * B₂)
theorem Set.MapsTo.add {α : Type u_2} {β : Type u_3} [Add β] {A : Set α} {B₁ B₂ : Set β} {f₁ f₂ : αβ} (h₁ : MapsTo f₁ A B₁) (h₂ : MapsTo f₂ A B₂) :
MapsTo (f₁ + f₂) A (B₁ + B₂)
theorem Set.MapsTo.inv {α : Type u_2} {β : Type u_3} [InvolutiveInv β] {A : Set α} {B : Set β} {f : αβ} (h : MapsTo f A B) :
theorem Set.MapsTo.neg {α : Type u_2} {β : Type u_3} [InvolutiveNeg β] {A : Set α} {B : Set β} {f : αβ} (h : MapsTo f A B) :
MapsTo (-f) A (-B)
theorem Set.MapsTo.div {α : Type u_2} {β : Type u_3} [Div β] {A : Set α} {B₁ B₂ : Set β} {f₁ f₂ : αβ} (h₁ : MapsTo f₁ A B₁) (h₂ : MapsTo f₂ A B₂) :
MapsTo (f₁ / f₂) A (B₁ / B₂)
theorem Set.MapsTo.sub {α : Type u_2} {β : Type u_3} [Sub β] {A : Set α} {B₁ B₂ : Set β} {f₁ f₂ : αβ} (h₁ : MapsTo f₁ A B₁) (h₂ : MapsTo f₂ A B₂) :
MapsTo (f₁ - f₂) A (B₁ - B₂)