Pointwise operations of sets #
This file defines pointwise algebraic operations on sets.
Main declarations #
For sets s and t and scalar a:
s * t: Multiplication, set of allx * ywherex ∈ sandy ∈ t.s + t: Addition, set of allx + ywherex ∈ sandy ∈ t.s⁻¹: Inversion, set of allx⁻¹wherex ∈ s.-s: Negation, set of all-xwherex ∈ s.s / t: Division, set of allx / ywherex ∈ sandy ∈ t.s - t: Subtraction, set of allx - ywherex ∈ sandy ∈ t.
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 #
- The following expressions are considered in simp-normal form in a group:
(fun h ↦ h * g) ⁻¹' s,(fun h ↦ g * h) ⁻¹' s,(fun h ↦ h * g⁻¹) ⁻¹' s,(fun h ↦ g⁻¹ * h) ⁻¹' s,s * t,s⁻¹,(1 : Set _)(and similarly for additive variants). Expressions equal to one of these will be simplified. - 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.
Tags #
set multiplication, set addition, pointwise addition, pointwise multiplication, pointwise subtraction
0/1 as sets #
Alias of Set.zero_prod_zero.
Set negation/inversion #
Set addition/multiplication #
Set subtraction/division #
Set α is a commutative subtraction monoid under pointwise operations if α is.
Equations
Instances For
Alias of Set.zero_notMem_sub_iff.
Alias of Set.one_notMem_div_iff.
Alias of Set.zero_notMem_neg_add_iff.
Alias of Set.one_notMem_inv_mul_iff.
Alias of the reverse direction of Set.one_notMem_div_iff.
Alias of Disjoint.zero_notMem_sub_set.
Alias of the reverse direction of Set.one_notMem_div_iff.
Alias of the reverse direction of Set.one_notMem_div_iff.