Pointwise operations of sets #
This file defines pointwise algebraic operations on sets.
Main declarations #
For sets s
and t
and scalar a
:
s • t
: Scalar multiplication, set of allx • y
wherex ∈ s
andy ∈ t
.s +ᵥ t
: Scalar addition, set of allx +ᵥ y
wherex ∈ s
andy ∈ t
.s -ᵥ t
: Scalar subtraction, set of allx -ᵥ y
wherex ∈ s
andy ∈ t
.a • s
: Scaling, set of alla • x
wherex ∈ s
.a +ᵥ s
: Translation, set of alla +ᵥ x
wherex ∈ s
.
For α
a semigroup/monoid, Set α
is a semigroup/monoid.
Appropriate definitions and results are also transported to the additive theory via to_additive
.
Implementation notes #
- We put all instances in the locale
Pointwise
, so that these instances are not available by default. Note that we do not mark them as reducible (as argued by note [reducible non-instances]) since we expect the locale to be open whenever the instances are actually used (and making the instances reducible changes the behavior ofsimp
.
Translation/scaling of sets #
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
If scalar multiplication by elements of α
sends (0 : β)
to zero,
then the same is true for (0 : Set β)
.
Equations
- Set.smulZeroClassSet = SMulZeroClass.mk ⋯
Instances For
If the scalar multiplication (· • ·) : α → β → β
is distributive,
then so is (· • ·) : α → Set β → Set β
.
Equations
- Set.distribSMulSet = DistribSMul.mk ⋯
Instances For
A distributive multiplicative action of a monoid on an additive monoid β
gives a distributive
multiplicative action on Set β
.
Equations
- Set.distribMulActionSet = DistribMulAction.mk ⋯ ⋯
Instances For
A multiplicative action of a monoid on a monoid β
gives a multiplicative action on Set β
.
Equations
- Set.mulDistribMulActionSet = MulDistribMulAction.mk ⋯ ⋯
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Note that we have neither SMulWithZero α (Set β)
nor SMulWithZero (Set α) (Set β)
because 0 * ∅ ≠ 0
.
A nonempty set is scaled by zero to the singleton set containing 0.