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

def LibraryNote.pointwise_nat_action :
Batteries.Util.LibraryNote

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.

Instances For

    0/1 as sets #

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

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

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

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

      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.

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

          The singleton operation as a ZeroHom.

          Instances For
            @[simp]
            theorem Set.coe_singletonOneHom {α : Type u_2} [One α] :
            singletonOneHom = singleton
            @[simp]
            theorem Set.coe_singletonZeroHom {α : Type u_2} [Zero α] :
            singletonZeroHom = singleton
            theorem Set.image_op_one {α : Type u_2} [One α] :
            theorem Set.image_op_zero {α : Type u_2} [Zero α] :
            @[simp]
            theorem Set.one_prod_one {α : Type u_2} {β : Type u_3} [One α] [One β] :
            1 ×ˢ 1 = 1
            @[simp]
            theorem Set.zero_prod_zero {α : Type u_2} {β : Type u_3} [Zero α] [Zero β] :
            0 ×ˢ 0 = 0

            Set negation/inversion #

            @[implicit_reducible]
            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.

            Instances For
              @[implicit_reducible]
              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.

              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 : α} :
                a s⁻¹ a⁻¹ s
                @[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 α} :
                (s t)⁻¹ = s⁻¹ t⁻¹
                @[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 α} :
                (s t)⁻¹ = s⁻¹ t⁻¹
                @[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 : α} :
                a⁻¹ s⁻¹ a s
                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 α} :
                s⁻¹ = s =
                @[simp]
                theorem Set.neg_eq_empty {α : Type u_2} [InvolutiveNeg α] {s : Set α} :
                -s = s =
                @[implicit_reducible]
                instance Set.involutiveInv {α : Type u_2} [InvolutiveInv α] :
                @[implicit_reducible]
                instance Set.involutiveNeg {α : Type u_2} [InvolutiveNeg α] :
                @[simp]
                theorem Set.inv_subset_inv {α : Type u_2} [InvolutiveInv α] {s t : Set α} :
                s⁻¹ t⁻¹ s t
                @[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 α} :
                s⁻¹ t s t⁻¹
                theorem Set.neg_subset {α : Type u_2} [InvolutiveNeg α] {s t : Set α} :
                -s t s -t
                theorem Set.inv_eq_self_iff_inv_subset {α : Type u_2} [InvolutiveInv α] {s : Set α} :
                s⁻¹ = s s⁻¹ s
                theorem Set.neg_eq_self_iff_neg_subset {α : Type u_2} [InvolutiveNeg α] {s : Set α} :
                -s = s -s s
                @[simp]
                theorem Set.inv_singleton {α : Type u_2} [InvolutiveInv α] (a : α) :
                {a}⁻¹ = {a⁻¹}
                @[simp]
                theorem Set.neg_singleton {α : Type u_2} [InvolutiveNeg α] (a : α) :
                -{a} = {-a}
                @[simp]
                theorem Set.inv_insert {α : Type u_2} [InvolutiveInv α] (a : α) (s : Set α) :
                (insert a s)⁻¹ = insert a⁻¹ s⁻¹
                @[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.inv_range' {α : Type u_2} [InvolutiveInv α] {ι : Type u_5} {f : ια} :
                theorem Set.neg_range' {α : Type u_2} [InvolutiveNeg α] {ι : Type u_5} {f : ια} :
                -range f = range (-f)
                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 #

                @[implicit_reducible]
                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.

                Instances For
                  @[implicit_reducible]
                  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.

                  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 α} :
                    * s =
                    @[simp]
                    theorem Set.empty_add {α : Type u_2} [Add α] {s : Set α} :
                    + s =
                    @[simp]
                    theorem Set.mul_empty {α : Type u_2} [Mul α] {s : Set α} :
                    s * =
                    @[simp]
                    theorem Set.add_empty {α : Type u_2} [Add α] {s : Set α} :
                    s + =
                    @[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 α} :
                    (s * t).Nonempty s.Nonempty t.Nonempty
                    @[simp]
                    theorem Set.add_nonempty {α : Type u_2} [Add α] {s t : Set α} :
                    (s + t).Nonempty s.Nonempty t.Nonempty
                    theorem Set.Nonempty.mul {α : Type u_2} [Mul α] {s t : Set α} :
                    s.Nonemptyt.Nonempty(s * t).Nonempty
                    theorem Set.Nonempty.add {α : Type u_2} [Add α] {s t : Set α} :
                    s.Nonemptyt.Nonempty(s + t).Nonempty
                    theorem Set.Nonempty.of_mul_left {α : Type u_2} [Mul α] {s t : Set α} :
                    (s * t).Nonemptys.Nonempty
                    theorem Set.Nonempty.of_add_left {α : Type u_2} [Add α] {s t : Set α} :
                    (s + t).Nonemptys.Nonempty
                    theorem Set.Nonempty.of_mul_right {α : Type u_2} [Mul α] {s t : Set α} :
                    (s * t).Nonemptyt.Nonempty
                    theorem Set.Nonempty.of_add_right {α : Type u_2} [Add α] {s t : Set α} :
                    (s + t).Nonemptyt.Nonempty
                    @[simp]
                    theorem Set.mul_singleton {α : Type u_2} [Mul α] {s : Set α} {b : α} :
                    s * {b} = (fun (x : α) => x * b) '' s
                    @[simp]
                    theorem Set.add_singleton {α : Type u_2} [Add α] {s : Set α} {b : α} :
                    s + {b} = (fun (x : α) => x + b) '' s
                    @[simp]
                    theorem Set.singleton_mul {α : Type u_2} [Mul α] {t : Set α} {a : α} :
                    {a} * t = (fun (x : α) => a * x) '' t
                    @[simp]
                    theorem Set.singleton_add {α : Type u_2} [Add α] {t : Set α} {a : α} :
                    {a} + t = (fun (x : α) => a + x) '' t
                    theorem Set.singleton_mul_singleton {α : Type u_2} [Mul α] {a b : α} :
                    {a} * {b} = {a * b}
                    theorem Set.singleton_add_singleton {α : Type u_2} [Add α] {a b : α} :
                    {a} + {b} = {a + b}
                    theorem Set.mul_subset_mul {α : Type u_2} [Mul α] {s₁ s₂ t₁ t₂ : Set α} :
                    s₁ t₁s₂ t₂s₁ * s₂ t₁ * t₂
                    theorem Set.add_subset_add {α : Type u_2} [Add α] {s₁ s₂ t₁ t₂ : Set α} :
                    s₁ t₁s₂ t₂s₁ + s₂ t₁ + t₂
                    theorem Set.mul_subset_mul_left {α : Type u_2} [Mul α] {s t₁ t₂ : Set α} :
                    t₁ t₂s * t₁ s * t₂
                    theorem Set.add_subset_add_left {α : Type u_2} [Add α] {s t₁ t₂ : Set α} :
                    t₁ t₂s + t₁ s + t₂
                    theorem Set.mul_subset_mul_right {α : Type u_2} [Mul α] {s₁ s₂ t : Set α} :
                    s₁ s₂s₁ * t s₂ * t
                    theorem Set.add_subset_add_right {α : Type u_2} [Add α] {s₁ s₂ t : Set α} :
                    s₁ s₂s₁ + t s₂ + t
                    instance Set.instMulLeftMono {α : Type u_2} [Mul α] :
                    instance Set.instAddLeftMono {α : Type u_2} [Add α] :
                    instance Set.instMulRightMono {α : Type u_2} [Mul α] :
                    instance Set.instAddRightMono {α : Type u_2} [Add α] :
                    theorem Set.mul_subset_iff {α : Type u_2} [Mul α] {s t u : Set α} :
                    s * t u xs, yt, x * y u
                    theorem Set.add_subset_iff {α : Type u_2} [Add α] {s t u : Set α} :
                    s + t u xs, yt, x + y u
                    theorem Set.union_mul {α : Type u_2} [Mul α] {s₁ s₂ t : Set α} :
                    (s₁ s₂) * t = s₁ * t s₂ * t
                    theorem Set.union_add {α : Type u_2} [Add α] {s₁ s₂ t : Set α} :
                    s₁ s₂ + t = s₁ + t (s₂ + t)
                    theorem Set.mul_union {α : Type u_2} [Mul α] {s t₁ t₂ : Set α} :
                    s * (t₁ t₂) = s * t₁ s * t₂
                    theorem Set.add_union {α : Type u_2} [Add α] {s t₁ t₂ : Set α} :
                    s + (t₁ t₂) = s + t₁ (s + t₂)
                    theorem Set.inter_mul_subset {α : Type u_2} [Mul α] {s₁ s₂ t : Set α} :
                    s₁ s₂ * t s₁ * t (s₂ * t)
                    theorem Set.inter_add_subset {α : Type u_2} [Add α] {s₁ s₂ t : Set α} :
                    s₁ s₂ + t (s₁ + t) (s₂ + t)
                    theorem Set.mul_inter_subset {α : Type u_2} [Mul α] {s t₁ t₂ : Set α} :
                    s * (t₁ t₂) s * t₁ (s * t₂)
                    theorem Set.add_inter_subset {α : Type u_2} [Add α] {s t₁ t₂ : Set α} :
                    s + t₁ t₂ (s + t₁) (s + t₂)
                    theorem Set.inter_mul_union_subset_union {α : Type u_2} [Mul α] {s₁ s₂ t₁ t₂ : Set α} :
                    s₁ s₂ * (t₁ t₂) s₁ * t₁ s₂ * t₂
                    theorem Set.inter_add_union_subset_union {α : Type u_2} [Add α] {s₁ s₂ t₁ t₂ : Set α} :
                    s₁ s₂ + (t₁ t₂) s₁ + t₁ (s₂ + t₂)
                    theorem Set.union_mul_inter_subset_union {α : Type u_2} [Mul α] {s₁ s₂ t₁ t₂ : Set α} :
                    (s₁ s₂) * (t₁ t₂) s₁ * t₁ s₂ * t₂
                    theorem Set.union_add_inter_subset_union {α : Type u_2} [Add α] {s₁ s₂ t₁ t₂ : Set α} :
                    s₁ s₂ + t₁ t₂ s₁ + t₁ (s₂ + t₂)
                    def Set.singletonMulHom {α : Type u_2} [Mul α] :
                    α →ₙ* Set α

                    The singleton operation as a MulHom.

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

                      The singleton operation as an AddHom.

                      Instances For
                        @[simp]
                        theorem Set.coe_singletonMulHom {α : Type u_2} [Mul α] :
                        singletonMulHom = singleton
                        @[simp]
                        theorem Set.coe_singletonAddHom {α : Type u_2} [Add α] :
                        singletonAddHom = singleton
                        @[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 #

                        @[implicit_reducible]
                        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.

                        Instances For
                          @[implicit_reducible]
                          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.

                          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 α} :
                            / s =
                            @[simp]
                            theorem Set.empty_sub {α : Type u_2} [Sub α] {s : Set α} :
                            - s =
                            @[simp]
                            theorem Set.div_empty {α : Type u_2} [Div α] {s : Set α} :
                            s / =
                            @[simp]
                            theorem Set.sub_empty {α : Type u_2} [Sub α] {s : Set α} :
                            s - =
                            @[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 α} :
                            (s / t).Nonempty s.Nonempty t.Nonempty
                            @[simp]
                            theorem Set.sub_nonempty {α : Type u_2} [Sub α] {s t : Set α} :
                            (s - t).Nonempty s.Nonempty t.Nonempty
                            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₂)
                            @[implicit_reducible]
                            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].

                            Instances For
                              @[implicit_reducible]
                              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].

                              Instances For
                                @[implicit_reducible]
                                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].

                                Instances For
                                  @[implicit_reducible]
                                  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].

                                  Instances For
                                    @[implicit_reducible]
                                    def Set.semigroup {α : Type u_2} [Semigroup α] :

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

                                    Instances For
                                      @[implicit_reducible]

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

                                      Instances For
                                        @[implicit_reducible]

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

                                        Instances For
                                          @[implicit_reducible]

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

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

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

                                            Instances For
                                              @[implicit_reducible]

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

                                              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.

                                                Instances For

                                                  The singleton operation as an AddMonoidHom.

                                                  Instances For
                                                    @[simp]
                                                    theorem Set.coe_singletonMonoidHom {α : Type u_2} [MulOneClass α] :
                                                    singletonMonoidHom = singleton
                                                    @[simp]
                                                    theorem Set.singletonMonoidHom_apply {α : Type u_2} [MulOneClass α] (a : α) :
                                                    @[implicit_reducible]
                                                    def Set.monoid {α : Type u_2} [Monoid α] :
                                                    Monoid (Set α)

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

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

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

                                                      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) :
                                                        ^ n =
                                                        @[simp]
                                                        theorem Set.nsmul_empty {α : Type u_2} [AddMonoid α] {n : } (hn : n 0) :
                                                        n =
                                                        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 : } :
                                                        (n s).Nonempty
                                                        @[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) :
                                                        s * univ = univ
                                                        theorem Set.add_univ_of_zero_mem {α : Type u_2} [AddMonoid α] {s : Set α} (hs : 0 s) :
                                                        s + univ = univ
                                                        theorem Set.univ_mul_of_one_mem {α : Type u_2} [Monoid α] {t : Set α} (ht : 1 t) :
                                                        univ * t = univ
                                                        theorem Set.univ_add_of_zero_mem {α : Type u_2} [AddMonoid α] {t : Set α} (ht : 0 t) :
                                                        univ + t = univ
                                                        @[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 : α} :
                                                        IsUnit aIsUnit {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) :
                                                        (s * t).Nontrivial
                                                        theorem Set.Nontrivial.add {α : Type u_2} [Add α] [IsLeftCancelAdd α] {s t : Set α} (hs : s.Nontrivial) (ht : t.Nontrivial) :
                                                        (s + 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
                                                        @[implicit_reducible]
                                                        def Set.commMonoid {α : Type u_2} [CommMonoid α] :

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

                                                        Instances For
                                                          @[implicit_reducible]

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

                                                          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
                                                            @[implicit_reducible]

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

                                                            Instances For
                                                              @[implicit_reducible]

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

                                                              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
                                                                @[simp]
                                                                theorem Set.univ_div_univ {α : Type u_2} [DivisionMonoid α] :
                                                                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) :
                                                                ^ n =
                                                                @[simp]
                                                                theorem Set.zsmul_empty {α : Type u_2} [SubtractionMonoid α] {n : } (hn : n 0) :
                                                                n =
                                                                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 : } :
                                                                (n s).Nonempty
                                                                @[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}
                                                                @[implicit_reducible]

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

                                                                Instances For
                                                                  @[implicit_reducible]

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

                                                                  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 α} :
                                                                    1 t⁻¹ * s ¬Disjoint s t
                                                                    @[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 : α) :
                                                                    IsUnit {a}
                                                                    theorem Set.isAddUnit_singleton {α : Type u_2} [AddGroup α] (a : α) :
                                                                    @[simp]
                                                                    theorem Set.isUnit_iff_singleton {α : Type u_2} [Group α] {s : Set α} :
                                                                    IsUnit s ∃ (a : α), s = {a}
                                                                    @[simp]
                                                                    theorem Set.isAddUnit_iff_singleton {α : Type u_2} [AddGroup α] {s : Set α} :
                                                                    IsAddUnit s ∃ (a : α), s = {a}
                                                                    @[simp]
                                                                    theorem Set.image_mul_left {α : Type u_2} [Group α] {t : Set α} {a : α} :
                                                                    (fun (x : α) => a * x) '' t = (fun (x : α) => a⁻¹ * x) ⁻¹' t
                                                                    @[simp]
                                                                    theorem Set.image_add_left {α : Type u_2} [AddGroup α] {t : Set α} {a : α} :
                                                                    (fun (x : α) => a + x) '' t = (fun (x : α) => -a + x) ⁻¹' t
                                                                    @[simp]
                                                                    theorem Set.image_mul_right {α : Type u_2} [Group α] {t : Set α} {b : α} :
                                                                    (fun (x : α) => x * b) '' t = (fun (x : α) => x * b⁻¹) ⁻¹' t
                                                                    @[simp]
                                                                    theorem Set.image_add_right {α : Type u_2} [AddGroup α] {t : Set α} {b : α} :
                                                                    (fun (x : α) => x + b) '' t = (fun (x : α) => x + -b) ⁻¹' t
                                                                    theorem Set.image_mul_left' {α : Type u_2} [Group α] {t : Set α} {a : α} :
                                                                    (fun (x : α) => a⁻¹ * x) '' t = (fun (x : α) => a * x) ⁻¹' t
                                                                    theorem Set.image_add_left' {α : Type u_2} [AddGroup α] {t : Set α} {a : α} :
                                                                    (fun (x : α) => -a + x) '' t = (fun (x : α) => a + x) ⁻¹' t
                                                                    theorem Set.image_mul_right' {α : Type u_2} [Group α] {t : Set α} {b : α} :
                                                                    (fun (x : α) => x * b⁻¹) '' t = (fun (x : α) => x * b) ⁻¹' t
                                                                    theorem Set.image_add_right' {α : Type u_2} [AddGroup α] {t : Set α} {b : α} :
                                                                    (fun (x : α) => x + -b) '' t = (fun (x : α) => x + b) ⁻¹' t
                                                                    @[simp]
                                                                    theorem Set.preimage_mul_left_singleton {α : Type u_2} [Group α] {a b : α} :
                                                                    (fun (x : α) => a * x) ⁻¹' {b} = {a⁻¹ * b}
                                                                    @[simp]
                                                                    theorem Set.preimage_add_left_singleton {α : Type u_2} [AddGroup α] {a b : α} :
                                                                    (fun (x : α) => a + x) ⁻¹' {b} = {-a + b}
                                                                    @[simp]
                                                                    theorem Set.preimage_mul_right_singleton {α : Type u_2} [Group α] {a b : α} :
                                                                    (fun (x : α) => x * a) ⁻¹' {b} = {b * a⁻¹}
                                                                    @[simp]
                                                                    theorem Set.preimage_add_right_singleton {α : Type u_2} [AddGroup α] {a b : α} :
                                                                    (fun (x : α) => x + a) ⁻¹' {b} = {b + -a}
                                                                    @[simp]
                                                                    theorem Set.preimage_mul_left_one {α : Type u_2} [Group α] {a : α} :
                                                                    (fun (x : α) => a * x) ⁻¹' 1 = {a⁻¹}
                                                                    @[simp]
                                                                    theorem Set.preimage_add_left_zero {α : Type u_2} [AddGroup α] {a : α} :
                                                                    (fun (x : α) => a + x) ⁻¹' 0 = {-a}
                                                                    @[simp]
                                                                    theorem Set.preimage_mul_right_one {α : Type u_2} [Group α] {b : α} :
                                                                    (fun (x : α) => x * b) ⁻¹' 1 = {b⁻¹}
                                                                    @[simp]
                                                                    theorem Set.preimage_add_right_zero {α : Type u_2} [AddGroup α] {b : α} :
                                                                    (fun (x : α) => x + b) ⁻¹' 0 = {-b}
                                                                    theorem Set.preimage_mul_left_one' {α : Type u_2} [Group α] {a : α} :
                                                                    (fun (x : α) => a⁻¹ * x) ⁻¹' 1 = {a}
                                                                    theorem Set.preimage_add_left_zero' {α : Type u_2} [AddGroup α] {a : α} :
                                                                    (fun (x : α) => -a + x) ⁻¹' 0 = {a}
                                                                    theorem Set.preimage_mul_right_one' {α : Type u_2} [Group α] {b : α} :
                                                                    (fun (x : α) => x * b⁻¹) ⁻¹' 1 = {b}
                                                                    theorem Set.preimage_add_right_zero' {α : Type u_2} [AddGroup α] {b : α} :
                                                                    (fun (x : α) => x + -b) ⁻¹' 0 = {b}
                                                                    @[simp]
                                                                    theorem Set.mul_univ {α : Type u_2} [Group α] {s : Set α} (hs : s.Nonempty) :
                                                                    s * univ = univ
                                                                    @[simp]
                                                                    theorem Set.add_univ {α : Type u_2} [AddGroup α] {s : Set α} (hs : s.Nonempty) :
                                                                    s + univ = univ
                                                                    @[simp]
                                                                    theorem Set.univ_mul {α : Type u_2} [Group α] {t : Set α} (ht : t.Nonempty) :
                                                                    univ * t = univ
                                                                    @[simp]
                                                                    theorem Set.univ_add {α : Type u_2} [AddGroup α] {t : Set α} (ht : t.Nonempty) :
                                                                    univ + t = univ
                                                                    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₂)