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

Pointwise monoids (Set, Finset, Filter) have derived pointwise actions of the form SMul α β → SMul α (Set β). When α is or , this action conflicts with the nat or int action coming from Set β being a Monoid or DivInvMonoid. For example, 2 • {a, b} can both be {2 • a, 2 • b} (pointwise action, pointwise repeated addition, Set.smulSet) and {a + a, a + b, b + a, b + b} (nat or int action, repeated pointwise addition, Set.NSMul).

Because the pointwise action can easily be spelled out in such cases, we give higher priority to the nat and int actions.

Equations
    Instances For

      0/1 as sets #

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

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

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

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

          Equations
            Instances For
              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
              def Set.singletonOneHom {α : Type u_2} [One α] :
              OneHom α (Set α)

              The singleton operation as a OneHom.

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

                  The singleton operation as a ZeroHom.

                  Equations
                    Instances For
                      @[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

                      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 scope Pointwise. It is equal to {x⁻¹ | x ∈ s}, see Set.image_inv_eq_inv.

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

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

                          Equations
                            Instances For
                              @[simp]
                              theorem Set.inv_setOf {α : Type u_2} [Inv α] (p : αProp) :
                              {x : α | p x}⁻¹ = {x : α | p x⁻¹}
                              @[simp]
                              theorem Set.neg_setOf {α : Type u_2} [Neg α] (p : αProp) :
                              -{x : α | p x} = {x : α | p (-x)}
                              @[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)
                              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 =
                              instance Set.involutiveInv {α : Type u_2} [InvolutiveInv α] :
                              Equations
                                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
                                  theorem Set.image_inv_of_apply_inv_eq {α : Type u_2} {β : Type u_3} [InvolutiveInv α] {s : Set α} {f g : αβ} (H : xs, f x⁻¹ = g x) :
                                  f '' s⁻¹ = g '' s
                                  theorem Set.image_neg_of_apply_neg_eq {α : Type u_2} {β : Type u_3} [InvolutiveNeg α] {s : Set α} {f g : αβ} (H : xs, f (-x) = g x) :
                                  f '' (-s) = g '' s
                                  theorem Set.image_inv_of_apply_inv_eq_inv {α : Type u_2} {β : Type u_3} [InvolutiveInv α] {s : Set α} [InvolutiveInv β] {f g : αβ} (H : xs, f x⁻¹ = (g x)⁻¹) :
                                  f '' s⁻¹ = (g '' s)⁻¹
                                  theorem Set.image_neg_of_apply_neg_eq_neg {α : Type u_2} {β : Type u_3} [InvolutiveNeg α] {s : Set α} [InvolutiveNeg β] {f g : αβ} (H : xs, f (-x) = -g x) :
                                  f '' (-s) = -g '' s
                                  @[simp]
                                  theorem Set.forall_inv_mem {α : Type u_2} [InvolutiveInv α] {s : Set α} {p : αProp} :
                                  (∀ (x : α), x⁻¹ sp x) xs, p x⁻¹
                                  @[simp]
                                  theorem Set.forall_neg_mem {α : Type u_2} [InvolutiveNeg α] {s : Set α} {p : αProp} :
                                  (∀ (x : α), -x sp x) xs, p (-x)
                                  @[simp]
                                  theorem Set.exists_inv_mem {α : Type u_2} [InvolutiveInv α] {s : Set α} {p : αProp} :
                                  (∃ (x : α), x⁻¹ s p x) xs, p x⁻¹
                                  @[simp]
                                  theorem Set.exists_neg_mem {α : Type u_2} [InvolutiveNeg α] {s : Set α} {p : αProp} :
                                  (∃ (x : α), -x s p x) xs, p (-x)

                                  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 scope Pointwise.

                                  Equations
                                    Instances For
                                      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
                                        Instances For
                                          @[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
                                          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₂)
                                          def Set.singletonMulHom {α : Type u_2} [Mul α] :
                                          α →ₙ* Set α

                                          The singleton operation as a MulHom.

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

                                              The singleton operation as an AddHom.

                                              Equations
                                                Instances For
                                                  @[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₂)

                                                  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
                                                    Instances For
                                                      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
                                                        Instances For
                                                          @[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
                                                            Instances For
                                                              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
                                                                Instances For
                                                                  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
                                                                    Instances For
                                                                      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
                                                                        Instances For
                                                                          def Set.semigroup {α : Type u_2} [Semigroup α] :

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

                                                                          Equations
                                                                            Instances For

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

                                                                              Equations
                                                                                Instances For

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

                                                                                  Equations
                                                                                    Instances For

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

                                                                                      Equations
                                                                                        Instances For
                                                                                          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
                                                                                          def Set.mulOneClass {α : Type u_2} [MulOneClass α] :

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

                                                                                          Equations
                                                                                            Instances For

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

                                                                                              Equations
                                                                                                Instances For
                                                                                                  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
                                                                                                  def Set.singletonMonoidHom {α : Type u_2} [MulOneClass α] :
                                                                                                  α →* Set α

                                                                                                  The singleton operation as a MonoidHom.

                                                                                                  Equations
                                                                                                    Instances For

                                                                                                      The singleton operation as an AddMonoidHom.

                                                                                                      Equations
                                                                                                        Instances For
                                                                                                          def Set.monoid {α : Type u_2} [Monoid α] :
                                                                                                          Monoid (Set α)

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

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

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

                                                                                                              Equations
                                                                                                                Instances For
                                                                                                                  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
                                                                                                                  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) :
                                                                                                                  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)
                                                                                                                  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
                                                                                                                  def Set.commMonoid {α : Type u_2} [CommMonoid α] :

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

                                                                                                                  Equations
                                                                                                                    Instances For

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

                                                                                                                      Equations
                                                                                                                        Instances For
                                                                                                                          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
                                                                                                                          theorem Set.nonempty_image_mulLeft_inv_inter_iff {α : Type u_2} [DivisionMonoid α] {s t : Set α} {a : α} :
                                                                                                                          ((fun (x : α) => a⁻¹ * x) '' s t).Nonempty ((fun (x : α) => x * a) '' s⁻¹ t⁻¹).Nonempty
                                                                                                                          theorem Set.nonempty_image_addLeft_neg_inter_iff {α : Type u_2} [SubtractionMonoid α] {s t : Set α} {a : α} :
                                                                                                                          ((fun (x : α) => -a + x) '' s t).Nonempty ((fun (x : α) => x + a) '' (-s) -t).Nonempty
                                                                                                                          theorem Set.nonempty_image_mulRight_inv_inter_iff {α : Type u_2} [DivisionMonoid α] {s t : Set α} {a : α} :
                                                                                                                          ((fun (x : α) => x * a⁻¹) '' s t).Nonempty ((fun (x : α) => a * x) '' s⁻¹ t⁻¹).Nonempty
                                                                                                                          theorem Set.nonempty_image_addRight_neg_inter_iff {α : Type u_2} [SubtractionMonoid α] {s t : Set α} {a : α} :
                                                                                                                          ((fun (x : α) => x + -a) '' s t).Nonempty ((fun (x : α) => a + x) '' (-s) -t).Nonempty

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

                                                                                                                          Equations
                                                                                                                            Instances For

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

                                                                                                                              Equations
                                                                                                                                Instances For
                                                                                                                                  @[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
                                                                                                                                  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}

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

                                                                                                                                  Equations
                                                                                                                                    Instances For

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

                                                                                                                                      Equations
                                                                                                                                        Instances For

                                                                                                                                          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.one_notMem_div_iff {α : Type u_2} [Group α] {s t : Set α} :
                                                                                                                                          1s / t Disjoint s t
                                                                                                                                          theorem Set.zero_notMem_sub_iff {α : Type u_2} [AddGroup α] {s t : Set α} :
                                                                                                                                          0s - t Disjoint s t
                                                                                                                                          theorem Set.one_notMem_inv_mul_iff {α : Type u_2} [Group α] {s t : Set α} :
                                                                                                                                          1t⁻¹ * s Disjoint s t
                                                                                                                                          theorem Set.zero_notMem_neg_add_iff {α : Type u_2} [AddGroup α] {s t : Set α} :
                                                                                                                                          0-t + s Disjoint s t
                                                                                                                                          theorem Disjoint.one_notMem_div_set {α : Type u_2} [Group α] {s t : Set α} :
                                                                                                                                          Disjoint s t1s / t

                                                                                                                                          Alias of the reverse direction of Set.one_notMem_div_iff.

                                                                                                                                          theorem Disjoint.zero_notMem_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 : α) :
                                                                                                                                          @[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.preimage_pow_subset {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.preimage_nsmul_subset {F : Type u_1} {α : Type u_2} {β : Type u_3} [AddMonoid α] [AddMonoid β] [FunLike F α β] [AddMonoidHomClass F α β] (f : F) (s : Set β) (n : ) :
                                                                                                                                          n f ⁻¹' s f ⁻¹' (n 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₂)