Pointwise actions on sets #
This file proves that several kinds of actions of a type α on another type β transfer to actions
of α/Set α on Set β.
Implementation notes #
- We put all instances in the scope
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 scope to be open whenever the instances are actually used (and making the instances reducible changes the behavior ofsimp).
Translation/scaling of sets #
A multiplicative action of a monoid α on a type β gives a multiplicative action of Set α
on Set β.
Equations
- Set.mulAction = { toSMul := Set.smul, mul_smul := ⋯, one_smul := ⋯ }
Instances For
An additive action of an additive monoid α on a type β gives an additive action of Set α
on Set β
Equations
- Set.addAction = { toVAdd := Set.vadd, add_vadd := ⋯, zero_vadd := ⋯ }
Instances For
A multiplicative action of a monoid on a type β gives a multiplicative action on Set β.
Equations
- Set.mulActionSet = { toSMul := Set.smulSet, mul_smul := ⋯, one_smul := ⋯ }
Instances For
An additive action of an additive monoid on a type β gives an additive action on Set β.
Equations
- Set.addActionSet = { toVAdd := Set.vaddSet, add_vadd := ⋯, zero_vadd := ⋯ }
Instances For
Any intersection of translates of two sets s and t can be covered by a single translate of
(s⁻¹ * s) ∩ (t⁻¹ * t).
This is useful to show that the intersection of approximate subgroups is an approximate subgroup.
Any intersection of translates of two sets s and t can be covered by a single translate of
(-s + s) ∩ (-t + t).
This is useful to show that the intersection of approximate subgroups is an approximate subgroup.