Sets as a semiring under union #
This file defines SetSemiring α, an alias of Set α, which we endow with ∪ as addition and
pointwise * as multiplication. If α is a (commutative) monoid, SetSemiring α is a
(commutative) semiring.
An alias for Set α, which has a semiring structure given by ∪ as "addition" and pointwise
multiplication * as "multiplication".
Instances For
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
The identity function Set α → SetSemiring α.
Instances For
The identity function SetSemiring α → Set α.
Instances For
@[simp]
@[simp]
@[simp]
theorem
SetSemiring.down_subset_down
{α : Type u_1}
{s t : SetSemiring α}
:
SetSemiring.down s ⊆ SetSemiring.down t ↔ s ≤ t
@[simp]
theorem
SetSemiring.down_ssubset_down
{α : Type u_1}
{s t : SetSemiring α}
:
SetSemiring.down s ⊂ SetSemiring.down t ↔ s < t
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
theorem
SetSemiring.add_def
{α : Type u_1}
(s t : SetSemiring α)
:
s + t = Set.up (SetSemiring.down s ∪ SetSemiring.down t)
@[simp]
theorem
SetSemiring.down_add
{α : Type u_1}
(s t : SetSemiring α)
:
SetSemiring.down (s + t) = SetSemiring.down s ∪ SetSemiring.down t
@[simp]
@[implicit_reducible]
theorem
SetSemiring.mul_def
{α : Type u_1}
[Mul α]
(s t : SetSemiring α)
:
s * t = Set.up (SetSemiring.down s * SetSemiring.down t)
@[simp]
theorem
SetSemiring.down_mul
{α : Type u_1}
[Mul α]
(s t : SetSemiring α)
:
SetSemiring.down (s * t) = SetSemiring.down s * SetSemiring.down t
@[simp]
@[implicit_reducible]
@[simp]
@[implicit_reducible]
noncomputable instance
SetSemiring.instNonAssocSemiringOfMulOneClass
{α : Type u_1}
[MulOneClass α]
:
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
If α is a monoid, the map that sends a : α to
the singleton set {a} is a monoid homomorphism.
Instances For
noncomputable def
SetSemiring.imageHom
{α : Type u_1}
{β : Type u_2}
[MulOneClass α]
[MulOneClass β]
(f : α →* β)
:
The image of a set under a multiplicative homomorphism is a ring homomorphism with respect to the pointwise operations on sets.
Instances For
theorem
SetSemiring.imageHom_def
{α : Type u_1}
{β : Type u_2}
[MulOneClass α]
[MulOneClass β]
(f : α →* β)
(s : SetSemiring α)
:
(imageHom f) s = Set.up (⇑f '' SetSemiring.down s)
@[simp]
theorem
SetSemiring.down_imageHom
{α : Type u_1}
{β : Type u_2}
[MulOneClass α]
[MulOneClass β]
(f : α →* β)
(s : SetSemiring α)
:
SetSemiring.down ((imageHom f) s) = ⇑f '' SetSemiring.down s
@[simp]
theorem
Set.up_image
{α : Type u_1}
{β : Type u_2}
[MulOneClass α]
[MulOneClass β]
(f : α →* β)
(s : Set α)
:
Set.up (⇑f '' s) = (SetSemiring.imageHom f) (Set.up s)